Load and prep data

load the data

merged_progress_l <- read.csv(here("TimeSeries", "Inputs", "merged_progress_l.csv"))
merged_progress_w <- read.csv(here("TimeSeries", "Inputs", "merged_progress_w.csv")) %>%
  mutate(satisfaction_base = recode(satisfaction_base, `8` = 4L)) # correct a typo on qualtric

factorScore_4f <- read.csv(here("Baseline", "Outputs", "factorScoreDf_4f.csv"))
factorScore_6f <- read.csv(here("Baseline", "Outputs", "factorScoreDf_6f.csv"))

baseline_goalRep <- read.csv(here("Baseline", "Outputs", "baseline_goalRap.csv"))

factorScore_4f_post <- read.csv(here("TimeSeries", "Inputs", "factorScoreDf_4f_post.csv"))
factorScore_6f_post <- read.csv(here("TimeSeries", "Inputs", "factorScoreDf_6f_post.csv"))

Descriptive on baseline progress

Overall descriptive

The progress was measured by “How much progress have you made towards this goal?”, and the scale ranged from 0:Haven’t started to 10: 100%.
For recurrence goals, progress was measured by “How often have you successfully maintained or achieved this goal?”, and the scale ranged from 0: never to 10: 100% of the time
As expected, the recurrence goals have the highest baseline progress and the long-term goals has the lowest baseline progress.
It is somewhat reasonable to rate 10 for recurrence goals but it’s weird to rate 10 on short-term or long-term goals.

describeBy(merged_progress_w$progress_base, merged_progress_w$goalType, mat = T) %>%
  kable(format = "html", escape = F) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
item group1 vars n mean sd median trimmed mad min max range skew kurtosis se
X11 1 long-term 1 210 2.609524 2.404124 2 2.279762 1.4826 0 10 10 1.0409641 0.2811677 0.1659003
X12 2 recurrance 1 375 4.512000 3.105841 4 4.455150 4.4478 0 10 10 0.1191153 -1.2631547 0.1603849
X13 3 short-term 1 258 3.050388 2.813492 2 2.759615 2.9652 0 10 10 0.6974469 -0.7904059 0.1751604

goals that were rated as 10 or NA on baseline progress. Most goals are recurrence goals except 3 goals, and I’ll exclude them in the analysis involving goal progress.

merged_progress_w %>%
  filter(progress_base == 10 | is.na(progress_base)) %>%
  ggplot(aes(x = goalType)) + geom_bar(fill = "orange") + 
  geom_text(stat='count', aes(label=..count..)) + 
  ggtitle("Goals that were rated as 10 or NA on baseline progress")

Exclude the three goals that are either long-term or short-term goals, and the two goals have no data on the baseline progress

merged_progress_clean_w <- merged_progress_w %>%
  filter(progress_base != 10 | (progress_base == 10 & goalType == "recurrence"))

#write.csv(merged_progress_clean_w, here("TimeSeries", "Inputs", "merged_progress_clean_w.csv"), row.names = F)

A histogram of baseline goal progress by goal type:
Around 1/6 of the goals haven’t started and most of the goals are in progress. Both long term and short term goals are positively skewed and the distribution of recurrence goals are spread out

merged_progress_clean_w %>%
  ggplot(aes(x = progress_base)) + 
  geom_histogram(fill = "orange") + 
  scale_x_continuous(breaks=seq(0, 10, by = 1)) + 
  facet_grid(.~goalType) + 
  theme_classic()

ICC:

25.6% of the variance of baseline progress is between-subject variance (each subject on average listed 3.43 goals)

mlm_baseProgress <- lmer(progress_base ~ 1 + (1 | MTurkCode), data = merged_progress_clean_w)

VarCorr(mlm_baseProgress) %>%
  as_tibble() %>%
  mutate(ICC=vcov/sum(vcov)) %>%
  select(grp, ICC)
## # A tibble: 2 x 2
##   grp         ICC
##   <chr>     <dbl>
## 1 MTurkCode 0.256
## 2 Residual  0.744

Descriptive on baseline satisfaction

Overall descriptive

The baseline satisfaction was measured by “How satisfied are you with your current progress?” on a 7-point scale. The average rating is below the mid point and short term goals have slightly higher satisfaction on the baseline progress. The ratings are positively skewed except for short-term goals, which center around 4-5.

describeBy(merged_progress_w$satisfaction_base, merged_progress_w$goalType, mat = T) %>%
  kable(format = "html", escape = F) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
item group1 vars n mean sd median trimmed mad min max range skew kurtosis se
X11 1 long-term 1 210 3.495238 1.856703 4 3.422619 1.4826 1 7 6 0.1012113 -1.1321252 0.1281247
X12 2 recurrance 1 377 3.612732 1.916792 4 3.544554 2.9652 1 7 6 0.1419506 -1.1792056 0.0987198
X13 3 short-term 1 258 3.833333 1.799085 4 3.822115 1.4826 1 7 6 -0.0545068 -0.9941478 0.1120061
merged_progress_clean_w %>%
  ggplot(aes(x = satisfaction_base)) + 
  geom_histogram(fill = "orange") + 
  scale_x_continuous(breaks=seq(0, 10, by = 1)) + 
  facet_grid(.~goalType) + 
  theme_classic()

ICC

33% of the variance in baseline satisfaction is attributed to between subject variance. It’s higher than baseline progress.

mlm_baseSat<- lmer(satisfaction_base ~ 1 + (1 | MTurkCode), data = merged_progress_clean_w)

VarCorr(mlm_baseSat) %>%
  as_tibble() %>%
  mutate(ICC=vcov/sum(vcov)) %>%
  select(grp, ICC)
## # A tibble: 2 x 2
##   grp         ICC
##   <chr>     <dbl>
## 1 MTurkCode 0.331
## 2 Residual  0.669

Correlations between baseline DVs and baseline factor scores

The correlations between baseline progress and factor scores are weak except a positive correlation between progress at baseline and attainability from the 6-factor model. When comparing the 4-factor correlations and 6-factor correlations, we can see that the positive correlation between satisfaction and clarity from the 4-factor model can be mainly explained by the positive correlation between satisfaction and attainability.

4-factor scores

With all the variables

# merge the factor score data with baseline progress
factorScore_4f_base <- factorScore_4f %>%
  right_join(select(merged_progress_clean_w, MTurkCode, goal, progress_base, satisfaction_base), by = c("MTurkCode", "goal"))

# correlate the correlations
base_corr_f4 <- factorScore_4f_base %>%
  select(Value: satisfaction_base) %>%
  cor(use = "pairwise.complete.obs")

# visualization
corrplot(base_corr_f4, method = "circle",number.cex = .7, order = "AOE", addCoef.col = "black",type = "upper",col= colorRampPalette(c("midnightblue","white", "orange"))(200), title = "correlations between 4-factor scores and DVs with all goals", mar=c(0,0,1,0))

Correlations with baseline progress

Grouped by goal type: The correlations are mainly driven by long-term goals, which is interesting, because I would expect progress measure to be the least reliable for long-term goals at baseline

factorScore_4f_base %>%
  group_by(goalType) %>%
  summarise(across(c(Value:Consensus), ~cor(.x, progress_base, use = "pairwise.complete.obs")),
            total_goal = n()) %>%
  kable(format = "html", escape = F, caption = "Correlations between baseline progress and the 4-factor scores") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
Correlations between baseline progress and the 4-factor scores
goalType Value Clarity External Consensus total_goal
long-term 0.1150924 0.2325905 0.1159106 -0.1219020 208
recurrance -0.0029060 0.1630253 0.0569149 -0.0125356 357
short-term 0.0369130 0.0616977 0.0810676 -0.1469216 257

Correlations with baseline satisfaction

The pattern is similar to those of baseline progress. Other than the positive correlation with clarity, baseline satisfaction also negatively correlate with consensus for short-term and long-term goals.

factorScore_4f_base %>%
  group_by(goalType) %>%
  summarise(across(c(Value:Consensus), ~cor(.x, satisfaction_base, use = "pairwise.complete.obs")),
            #mean_progress = mean(.x),
            total_goal = n()) %>%
  kable(format = "html", escape = F, caption = "Correlations between baseline satisfaction and the 4-factor scores") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
Correlations between baseline satisfaction and the 4-factor scores
goalType Value Clarity External Consensus total_goal
long-term 0.1482316 0.4396824 -0.0053369 -0.1729462 208
recurrance 0.0066383 0.2613195 0.0421846 -0.0893055 357
short-term 0.0160314 0.2328494 -0.0177376 -0.2002122 257

6-factor scores

With all the variables

Attainability seems to be the only factor correlate with both DVs.

# merge the factor score data with baseline progress
factorScore_6f_base <- factorScore_6f %>%
  right_join(select(merged_progress_clean_w, MTurkCode, goal, progress_base, satisfaction_base), by = c("MTurkCode", "goal"))

# correlate the correlations
base_corr_f6 <- factorScore_6f_base %>%
  select(Value: satisfaction_base) %>%
  cor(use = "pairwise.complete.obs")

# visualization
corrplot(base_corr_f6, method = "circle",number.cex = .7, order = "AOE", addCoef.col = "black",type = "upper",col= colorRampPalette(c("midnightblue","white", "orange"))(200))

Correlations with baseline progress

Similar to the correlations with the 4-factor scores, correlations are mainly driven by long-term goals. After grouping based on types, at least the value and external factor don’t have a coefficient very close to 0 for long-term and short-term goals.

factorScore_6f_base %>%
  group_by(goalType) %>%
  summarise(across(c(Value:Instrumentality), ~cor(.x, progress_base, use = "pairwise.complete.obs")),
            #mean_progress = mean(.x),
            total_goal = n()) %>%
  kable(format = "html", escape = F, caption = "Correlations between baseline progress and the 6-factor scores") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
Correlations between baseline progress and the 6-factor scores
goalType Value External Attainability Consensus Measurability Instrumentality total_goal
long-term 0.1084669 0.1261821 0.2833614 -0.1219020 0.1693360 0.1563704 208
recurrance 0.0239588 0.0728736 0.3324634 -0.0125356 0.0204646 0.0203787 357
short-term 0.0255076 0.1035427 0.1845062 -0.1469216 -0.0427633 0.0678140 257

### Correlations with baseline satisfaction

After grouping by goal types, value also positively correlates with baseline satisfaction among long-term goals and consensus negatively correlates with baseline satisfaction among short-term goals.

factorScore_6f_base %>%
  group_by(goalType) %>%
  summarise(across(c(Value:Instrumentality), ~cor(.x, satisfaction_base, use = "pairwise.complete.obs")),
            #mean_progress = mean(.x),
            total_goal = n()) %>%
  kable(format = "html", escape = F, caption = "Correlations between baseline satisfaction and the 6-factor scores") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
Correlations between baseline satisfaction and the 6-factor scores
goalType Value External Attainability Consensus Measurability Instrumentality total_goal
long-term 0.2211071 -0.0207848 0.4714865 -0.1729462 0.2350491 0.0771916 208
recurrance 0.0501813 0.0477123 0.3993433 -0.0893055 0.0684624 -0.0084719 357
short-term 0.0561781 -0.0036350 0.3500232 -0.2002122 0.0478256 0.0241128 257

Descriptive on final progress

At each follow-up, progress was measured by : “How much progress have you made out of the total progress you hope to make during this three-month period?” on a 11-point scale: 0: 0% 10: 100% 11: more than I expected. For long-term goals, we displayed both their goals and the planned progress for the 3-month period. For recurrence goals, the measure was identical to the baseline: “How often have you successfully maintained or achieved this goal?” on a 1-11 point scale.

Final progress was recoded from participants’ last completed follow-ups.

# convert monthly DVs to the final DVs 
merged_progress_clean_w <- merged_progress_clean_w %>%
  mutate(final_time = case_when( # record the time for their last progress
    is.na(terminate_time) == FALSE ~ terminate_time,
    is.na(terminate_time) == TRUE & is.na(status_F3) == FALSE ~ "F3",
    is.na(terminate_time) == TRUE & is.na(status_F3) == TRUE & is.na(status_F2) ==F ~ "F2",
    is.na(terminate_time) == TRUE & is.na(status_F3) == FALSE & is.na(status_F2) ==T & is.na(status_F1) ~ "F1"
  ),
      miss_final = case_when( # record if they miss their last progress evaluation
    is.na(terminate_time) == TRUE & is.na(status_F3) == TRUE ~ TRUE,
    is.na(terminate_time) == F | is.na(status_F3) == F ~ FALSE),
    all_progress = case_when( # record if they complete all three progress evaluations
      is.na(progress_F1) == F & is.na(progress_F2) == F & is.na(progress_F3) == F ~ TRUE
    )
  ) %>%
  mutate(progress_final = case_when( # record 
    final_time == "F1" ~ progress_F1, 
    final_time == "F2" ~ progress_F2,
    final_time == "F3" ~ progress_F3),
    satisfaction_final = case_when(
    final_time == "F1" ~ satisfaction_F1, 
    final_time == "F2" ~ satisfaction_F2,
    final_time == "F3" ~ satisfaction_F3),
    status_final = case_when(
    final_time == "F1" ~ status_F1, 
    final_time == "F2" ~ status_F2,
    final_time == "F3" ~ status_F3)  
    )

#write.csv(merged_progress_clean_w, here("TimeSeries", "Inputs", "merged_progress_clean_w.csv"), row.names = F)

Overall descriptive

Group by goal types: All above mid-point; short-term goals had the highest progress

describeBy(merged_progress_clean_w$progress_final, merged_progress_clean_w$goalType, mat = T) %>%
  kable(format = "html", escape = F, caption = "the final progress grouped by goal type") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
the final progress grouped by goal type
item group1 vars n mean sd median trimmed mad min max range skew kurtosis se
X11 1 long-term 1 175 5.668571 3.353483 5 5.631206 4.4478 0 11 11 0.1378793 -1.183877 0.2534995
X12 2 recurrance 1 299 6.371238 3.277845 7 6.506224 2.9652 0 11 11 -0.3711396 -1.114367 0.1895627
X13 3 short-term 1 217 6.852535 3.752333 8 7.114286 4.4478 0 11 11 -0.3841217 -1.350529 0.2547250

Group by the final status: This group validate the measure as completed goals had a mean rating slightly above 10 (100%) despite a few low ratings and abandoned goals had a very low progress ratings. Adjusted goals were a bit tricky. Here, it refers to goals that were adjusted at their last follow-ups, but goals that were adjusted in F1 or F2 were counted in other groups if the participants filled out the later follow-ups.

describeBy(merged_progress_clean_w$progress_final, merged_progress_clean_w$status_final, mat = T) %>%
  kable(format = "html", escape = F, caption = "the final progress grouped by the final status") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
the final progress grouped by the final status
item group1 vars n mean sd median trimmed mad min max range skew kurtosis se
X11 1 abandoned 1 79 1.822785 1.872606 1.0 1.553846 1.4826 0 11 11 1.9428156 5.7487366 0.2106846
X12 2 adjusted 1 32 4.750000 2.651841 4.5 4.615385 2.2239 1 11 10 0.4423966 -0.7136433 0.4687836
X13 3 completed 1 150 10.073333 1.376196 10.0 10.358333 1.4826 1 11 10 -2.9546312 12.9482159 0.1123659
X14 4 continued 1 430 5.993023 2.947473 6.0 6.040698 2.9652 0 11 11 -0.1288731 -1.0409694 0.1421398

Group by the final time point: it’s hard to interpret this grouping because goals could be terminated early due to completion, abandoned or attrition.

describeBy(merged_progress_clean_w$progress_final, merged_progress_clean_w$final_time, mat = T) %>%
  kable(format = "html", escape = F, caption = "the final progress grouped by the final time point") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
the final progress grouped by the final time point
item group1 vars n mean sd median trimmed mad min max range skew kurtosis se
X11 1 F1 1 70 7.028571 4.475283 10 7.392857 1.4826 0 11 11 -0.5349598 -1.554401 0.5348986
X12 2 F2 1 78 6.884615 4.134055 9 7.171875 2.9652 0 11 11 -0.4567948 -1.482952 0.4680895
X13 3 F3 1 543 6.178637 3.205068 6 6.259770 4.4478 0 11 11 -0.1599690 -1.167550 0.1375426

A visualization of the final progress grouped by goal types and final status: the distribution make sense.

merged_progress_clean_w %>%
  filter(status_final %in% c("abandoned", "completed", "continued")) %>%
  ggplot(aes(x = progress_final)) + 
  geom_histogram(fill = "orange") + 
  scale_x_continuous(breaks=seq(0, 10, by = 1)) + 
  facet_grid(status_final~goalType)

ICC

The percentage of variance that is attribute to the between-subject level is very similar to that in the baseline

mlm_finalProgress <- lmer(progress_final ~ 1 + (1 | MTurkCode), data = merged_progress_clean_w)

VarCorr(mlm_finalProgress) %>%
  as_tibble() %>%
  mutate(ICC=vcov/sum(vcov)) %>%
  select(grp, ICC)
## # A tibble: 2 x 2
##   grp         ICC
##   <chr>     <dbl>
## 1 MTurkCode 0.229
## 2 Residual  0.771

Descriptive on final satisfaction

At each follow-up, satisfaction measure was identical to the baseline: “How satisfied are you with this level of progress?” on a 7-point scale

Overall descriptive

Group by goal type:the ratings are similar across groups and all are slightly above the mid-point

describeBy(merged_progress_clean_w$satisfaction_final, merged_progress_clean_w$goalType, mat = T) %>%
  kable(format = "html", escape = F) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
item group1 vars n mean sd median trimmed mad min max range skew kurtosis se
X11 1 long-term 1 177 4.412429 2.106393 5 4.510490 2.9652 1 7 6 -0.2065070 -1.361718 0.1583262
X12 2 recurrance 1 299 4.387960 2.217227 5 4.481328 2.9652 1 7 6 -0.3935219 -1.344571 0.1282256
X13 3 short-term 1 217 4.705069 2.408631 6 4.874286 1.4826 1 7 6 -0.4075068 -1.509982 0.1635085

Group by the final status: This somewhat validate the satisfaction measure as abandoned goals had very low ratings and completed goals had very high ratings close to the max (7)

describeBy(merged_progress_clean_w$satisfaction_final, merged_progress_clean_w$status_final, mat = T) %>%
  kable(format = "html", escape = F) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
item group1 vars n mean sd median trimmed mad min max range skew kurtosis se
X11 1 abandoned 1 79 1.734177 1.1402751 1 1.523077 0.0000 1 7 6 1.9582323 4.5135542 0.1282910
X12 2 adjusted 1 32 3.406250 1.8466950 3 3.307692 1.4826 1 7 6 0.4565606 -0.9688184 0.3264526
X13 3 completed 1 152 6.703947 0.7791897 7 6.901639 0.0000 2 7 5 -3.4437604 13.7478420 0.0632006
X14 4 continued 1 430 4.300000 2.0576199 5 4.375000 2.9652 1 7 6 -0.2929231 -1.2527447 0.0992272

Group by the final time point: it’s hard to interpret this grouping without any interactions with other variables.

describeBy(merged_progress_clean_w$satisfaction_final, merged_progress_clean_w$final_time, mat = T) %>%
  kable(format = "html", escape = F) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
item group1 vars n mean sd median trimmed mad min max range skew kurtosis se
X11 1 F1 1 72 5.194444 2.412636 7 5.482759 0.0000 1 7 6 -0.8303640 -1.065512 0.2843319
X12 2 F2 1 78 4.641026 2.578504 6 4.781250 1.4826 1 7 6 -0.3821869 -1.662686 0.2919581
X13 3 F3 1 543 4.379374 2.166437 5 4.473563 2.9652 1 7 6 -0.2924801 -1.351993 0.0929707

Histograms: The distribution makes sense. Compared to the baseline, the distribution of long-term and recurrance goals shipted a bit to the right and that of short-term goals shifted a bit to the left.

merged_progress_clean_w %>%
  filter(status_final %in% c("abandoned", "completed", "continued")) %>%
  ggplot(aes(x = satisfaction_final)) + 
  geom_histogram(fill = "orange") + 
  scale_x_continuous(breaks=seq(0, 10, by = 1)) + 
  facet_grid(status_final~goalType)

ICC

The between-subject variance dropped almost in half from the baseline

mlm_finalSatisfaction <- lmer(satisfaction_final ~ 1 + (1 | MTurkCode), data = merged_progress_clean_w)

VarCorr(mlm_finalSatisfaction) %>%
  as_tibble() %>%
  mutate(ICC=vcov/sum(vcov)) %>%
  select(grp, ICC)
## # A tibble: 2 x 2
##   grp         ICC
##   <chr>     <dbl>
## 1 MTurkCode 0.157
## 2 Residual  0.843

Correlations between final DVs and baseline factor scores

These are unit factor scores generated from baseline goal representation ratings. I excluded goals that were adjusted at any follow-ups for the following correlations because they have another set of baseline ratings when they were adjusted.

4-factor score

with all variables:

# exclude goals that were adjusted at any follow-up
adjustedDf <- merged_progress_clean_w %>%
  filter(status_F1 == "adjusted" | status_F2 == "adjusted" | status_F3 == "adjusted")

merged_progress_noAdj_w <- merged_progress_clean_w %>%
  anti_join(adjustedDf, by = c("MTurkCode", "goal"))

# merge the factor score data with final progress
factorScore_4f_final <- factorScore_4f %>%
  right_join(select(merged_progress_noAdj_w, MTurkCode, goal, progress_final, satisfaction_final, status_final), by = c("MTurkCode", "goal"))

# correlate the correlations
final_corr_f4 <- factorScore_4f_final %>%
  select(Value: satisfaction_final) %>%
  cor(use = "pairwise.complete.obs")

# visualization
corrplot(final_corr_f4, method = "circle",number.cex = .7, order = "AOE", addCoef.col = "black",type = "upper",col= colorRampPalette(c("midnightblue","white", "orange"))(200))

Correlations with final progress

Grouped by goal type: Other than the positive correlation between clarity and long-term goals, it seems like external also positively correlate with final progress among long-term goals

factorScore_4f_final %>%
  group_by(goalType) %>%   
  summarise(across(c(Value:Consensus), ~cor(.x, progress_final, use = "pairwise.complete.obs")),
            total_goal = n()) %>%
  kable(format = "html", escape = F, ) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
goalType Value Clarity External Consensus total_goal
long-term 0.0798099 0.2455409 0.1773457 -0.0857791 191
recurrance -0.0065610 0.2705278 0.1017856 -0.0044487 321
short-term 0.0189629 0.1505325 0.0704906 -0.1367095 230

mlm

# m1 <- lmer( progress_final ~ Value + External + Clarity + Consensus + (External | MTurkCode) + (Value | MTurkCode) + (Clarity | MTurkCode)
#       + (Consensus | MTurkCode) + , REML = FALSE, data = factorScore_4f_final)
# 
# summary(m1)

Grouped by final status: Goals that are either abandoned or completed had limited variations in their final progress. Among the goals that are still continuing, only clarity positively correlate with final progress.

factorScore_4f_final %>%
  drop_na(status_final) %>%
  group_by(status_final) %>%
  summarise(across(c(Value:Consensus), ~cor(.x, progress_final, use = "pairwise.complete.obs")),
            total_goal = n()) %>%
  kable(format = "html", escape = F) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
status_final Value Clarity External Consensus total_goal
abandoned -0.0557617 0.0103490 0.1772978 -0.0430999 72
completed 0.0473502 0.2593008 0.0837601 0.0847953 149
continued -0.0465622 0.1925503 0.0293197 -0.0840652 411

Grouped by goal type * final status: only the continued long-term goals and recurrence goals have a somewhat large enough sample to look at the correlation and they show very different pattern with the value and external factor.

factorScore_4f_final %>%
  drop_na(status_final) %>%
  group_by(status_final, goalType) %>%
  summarise(across(c(Value:Consensus), ~cor(.x, progress_final, use = "pairwise.complete.obs")),
            total_goal = n()) %>%
  kable(format = "html", escape = F) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
status_final goalType Value Clarity External Consensus total_goal
abandoned long-term 0.1021582 0.5190827 0.2310247 0.0746893 15
abandoned recurrance -0.3235460 -0.0618627 0.1500414 -0.1038243 34
abandoned short-term 0.0022003 -0.2075267 0.0416277 -0.1330731 23
completed long-term 0.3331281 0.5013849 -0.0428610 0.2203253 24
completed recurrance 0.0248250 0.3598961 0.3021708 0.3256423 33
completed short-term 0.1041296 0.2178525 -0.0638972 0.0592227 92
continued long-term -0.0029077 0.1612047 0.1459778 -0.0828723 126
continued recurrance -0.1583823 0.2822545 -0.0256767 -0.0890297 202
continued short-term 0.1709174 0.0629432 0.0433456 -0.1438661 83

Correlations with final satisfaction

Grouped by goal type: clarity positively correlate with all types of goals. The positive relation with external is mainly driven by long-term goals and the negative relations with consensus is maintly driven by short-term goals.

factorScore_4f_final %>%
  group_by(goalType) %>%   
  summarise(across(c(Value:Consensus), ~cor(.x, satisfaction_final, use = "pairwise.complete.obs")),
            total_goal = n()) %>%
  kable(format = "html", escape = F, ) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
goalType Value Clarity External Consensus total_goal
long-term 0.0706630 0.2717590 0.2180373 -0.0972176 191
recurrance 0.0566417 0.3130473 0.1142455 -0.0202069 321
short-term -0.0282487 0.2001764 0.0581799 -0.1521106 230

Grouped by final status: Goals that are either abandoned or completed had limited variations in their final progress. Among the goals that are still continuing, only clarity positively correlate with final satisfaction and it’s probability due to the high correlation between final progress and final satisfaction.

factorScore_4f_final %>%
  drop_na(status_final) %>%
  group_by(status_final) %>%
  summarise(across(c(Value:Consensus), ~cor(.x, satisfaction_final, use = "pairwise.complete.obs")),
            total_goal = n()) %>%
  kable(format = "html", escape = F) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
status_final Value Clarity External Consensus total_goal
abandoned -0.1243594 -0.0856642 0.0396477 -0.157041 72
completed 0.0637132 0.2813794 0.1143973 0.084618 149
continued -0.0030606 0.2614873 0.0774478 -0.081828 411

Grouped by goal type * final status: only the continued long-term goals and recurrence goals have a somewhat large enough sample to look at the correlation and other than the positive correlation with clarity, continued long term goals also show a positive correlation with external.

factorScore_4f_final %>%
  drop_na(status_final) %>%
  group_by(status_final, goalType) %>%
  summarise(across(c(Value:Consensus), ~cor(.x, satisfaction_final, use = "pairwise.complete.obs")),
            total_goal = n()) %>%
  kable(format = "html", escape = F) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
status_final goalType Value Clarity External Consensus total_goal
abandoned long-term -0.0495401 0.5518426 0.2847339 0.0682809 15
abandoned recurrance -0.2486019 -0.1303387 0.0053675 -0.2601639 34
abandoned short-term -0.2680728 -0.4152209 -0.5237324 -0.4918749 23
completed long-term 0.1054583 0.2654459 0.3172238 0.0905756 24
completed recurrance 0.2168041 0.4328699 0.3720692 0.3438168 33
completed short-term 0.0593019 0.3363293 -0.1059065 0.0797538 92
continued long-term 0.0511589 0.2429439 0.2034624 -0.0719816 126
continued recurrance -0.0584930 0.3373785 0.0170788 -0.0824421 202
continued short-term 0.0461368 0.2226712 0.0790476 -0.1469375 83

6-factor scores

with all variables:

Similar to the correlation patterns with the 4-factor scores, and by comparing the two matrix, we can see that the relationship with clarity showed above is mainly driven by the correlation with attainability.

# merge the factor score data with finalline progress
factorScore_6f_final <- factorScore_6f %>%
  right_join(select(merged_progress_noAdj_w, MTurkCode, goal, progress_final, satisfaction_final, status_final), by = c("MTurkCode", "goal"))

# correlate the correlations
final_corr_f6 <- factorScore_6f_final %>%
  select(Value: satisfaction_final) %>%
  cor(use = "pairwise.complete.obs")

# visualization
corrplot(final_corr_f6, method = "circle",number.cex = .7, order = "AOE", addCoef.col = "black",type = "upper",col= colorRampPalette(c("midnightblue","white", "orange"))(200))

Correlations with final progress

Grouped by goal type: Other than the positive correlation with attainabililty and measurability, it seems like external also correlate with final progress among long-term goals, just weaker than the 4-factor scores.

factorScore_6f_final %>%
  group_by(goalType) %>%   
  summarise(across(c(Value:Instrumentality), ~cor(.x, progress_final, use = "pairwise.complete.obs")),
            total_goal = n()) %>%
  kable(format = "html", escape = F, ) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
goalType Value External Attainability Consensus Measurability Instrumentality total_goal
long-term 0.1025325 0.1785094 0.3212135 -0.0857791 0.2070156 0.0155654 191
recurrance 0.0254334 0.0981437 0.3547382 -0.0044487 0.1847210 0.0348919 321
short-term 0.0614609 0.0619455 0.1729807 -0.1367095 0.0925177 -0.0755720 230

Grouped by final status: Goals that are either abandoned or completed had limited variations in their final progress. Attainability and measurability showed different pattern with completed and continued goals. External only show a positive relationship with the final progress among abandoned goals, which is very different from the external score from the 4-factor model.

factorScore_6f_final %>%
  drop_na(status_final) %>%
  group_by(status_final) %>%
  summarise(across(c(Value:Instrumentality), ~cor(.x, progress_final, use = "pairwise.complete.obs")),
            total_goal = n()) %>%
  kable(format = "html", escape = F) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
status_final Value External Attainability Consensus Measurability Instrumentality total_goal
abandoned -0.0939205 0.1887398 0.0510201 -0.0430999 -0.0055801 0.0883940 72
completed 0.0649029 0.0467095 0.1147510 0.0847953 0.3068886 -0.0457009 149
continued -0.0224992 0.0380518 0.2887915 -0.0840652 0.0958134 -0.0110872 411

Grouped by goal type * final status: only the continued long-term goals and recurrence goals have a somewhat large enough sample to look at the correlation and they show different pattern with the value external and instrumentality factor.

factorScore_6f_final %>%
  drop_na(status_final) %>%
  group_by(status_final, goalType) %>%
  summarise(across(c(Value:Instrumentality), ~cor(.x, progress_final, use = "pairwise.complete.obs")),
            total_goal = n()) %>%
  kable(format = "html", escape = F) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
status_final goalType Value External Attainability Consensus Measurability Instrumentality total_goal
abandoned long-term 0.2714793 0.1901695 0.5428340 0.0746893 0.3433487 -0.0568545 15
abandoned recurrance -0.4714480 0.1286428 -0.0243795 -0.1038243 -0.1661654 0.1792055 34
abandoned short-term -0.1446688 0.1822120 -0.2537147 -0.1330731 0.0147166 0.1058125 23
completed long-term 0.3037492 -0.0512497 0.3056930 0.2203253 0.6800191 0.2011561 24
completed recurrance 0.0579059 0.2499943 0.2573651 0.3256423 0.4572054 0.0264643 33
completed short-term 0.1100380 -0.0952298 -0.0282253 0.0592227 0.1802615 -0.0121524 92
continued long-term 0.0142242 0.1657595 0.2913547 -0.0828723 0.1000767 -0.0016413 126
continued recurrance -0.1021900 -0.0192220 0.3758203 -0.0890297 0.1920240 -0.1144019 202
continued short-term 0.1888990 0.0516192 0.0240297 -0.1438661 0.0101284 0.0658734 83

Correlations with final satisfaction

Grouped by goal type: Compared with the correlations to the four-factor scores, the relationships with the clarity factor showed above are mainly driven by the positive relationship with attainability. Similar to the 4-factor scores, external also positively correlate wtih satisfaction among long-term goals.

factorScore_6f_final %>%
  group_by(goalType) %>%   
  summarise(across(c(Value:Instrumentality), ~cor(.x, satisfaction_final, use = "pairwise.complete.obs")),
            total_goal = n()) %>%
  kable(format = "html", escape = F, ) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
goalType Value External Attainability Consensus Measurability Instrumentality total_goal
long-term 0.1158567 0.1981086 0.3838465 -0.0972176 0.1534074 0.0333609 191
recurrance 0.1036104 0.1019916 0.3854250 -0.0202069 0.1858891 0.0321547 321
short-term 0.0254364 0.0385622 0.2673194 -0.1521106 0.0708919 -0.1022767 230

Grouped by final status: It’s interesting to see that the relationships between attainability and measurability reverse between continued goals and abandoned goals. However, the abandoned group doesn’t have a large sample size and the variation is restricted.

factorScore_6f_final %>%
  drop_na(status_final) %>%
  group_by(status_final) %>%
  summarise(across(c(Value:Instrumentality), ~cor(.x, satisfaction_final, use = "pairwise.complete.obs")),
            total_goal = n()) %>%
  kable(format = "html", escape = F) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
status_final Value External Attainability Consensus Measurability Instrumentality total_goal
abandoned -0.1111103 0.0328193 0.0482816 -0.157041 -0.2451000 0.0061866 72
completed 0.1217496 0.0630056 0.2164957 0.084618 0.2502533 -0.1038930 149
continued 0.0377619 0.0663716 0.3500055 -0.081828 0.1105121 -0.0046250 411

Grouped by goal type * final status: compared to the 4-factor correlations, the negative relationship between final satisfaction with values increased among continued recurrence goals and the positive relationship with external among continued long-term goals decreased, but both are still very weak.

factorScore_6f_final %>%
  drop_na(status_final) %>%
  group_by(status_final, goalType) %>%
  summarise(across(c(Value:Instrumentality), ~cor(.x, progress_final, use = "pairwise.complete.obs")),
            total_goal = n()) %>%
  kable(format = "html", escape = F) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
status_final goalType Value External Attainability Consensus Measurability Instrumentality total_goal
abandoned long-term 0.2714793 0.1901695 0.5428340 0.0746893 0.3433487 -0.0568545 15
abandoned recurrance -0.4714480 0.1286428 -0.0243795 -0.1038243 -0.1661654 0.1792055 34
abandoned short-term -0.1446688 0.1822120 -0.2537147 -0.1330731 0.0147166 0.1058125 23
completed long-term 0.3037492 -0.0512497 0.3056930 0.2203253 0.6800191 0.2011561 24
completed recurrance 0.0579059 0.2499943 0.2573651 0.3256423 0.4572054 0.0264643 33
completed short-term 0.1100380 -0.0952298 -0.0282253 0.0592227 0.1802615 -0.0121524 92
continued long-term 0.0142242 0.1657595 0.2913547 -0.0828723 0.1000767 -0.0016413 126
continued recurrance -0.1021900 -0.0192220 0.3758203 -0.0890297 0.1920240 -0.1144019 202
continued short-term 0.1888990 0.0516192 0.0240297 -0.1438661 0.0101284 0.0658734 83

partial correlation between baseline variables and final progress (Controlling for baseline progress)

# merge baseline variables with the cleaned datset
merged_progress_clean_w <- merged_progress_clean_w %>%
  left_join(select(baseline_goalRep, -listNum, -total_goal, -goalType), by = c("MTurkCode", "goal"))
merged_progress_clean_w %>%
  select(affordance: visibility, progress_final, progress_base) %>%
  gather(item, value, -progress_final, -progress_base) %>%
  nest(-item) %>%
  mutate(fit = map(data, ~lm(progress_final ~ value + progress_base, data = .x)),
         tidied = map(fit, tidy)) %>%
  unnest(tidied) %>%
  filter(term == "value") %>%
  select(item, estimate, p.value) %>%
  mutate_if(is.numeric, round, 3) %>%
  arrange(p.value) %>%
  kable(format = "html", escape = F) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
item estimate p.value
attainability 0.460 0.000
measurability 0.349 0.000
meaningfulness 0.243 0.001
temporal_duration -0.625 0.001
clarity 0.354 0.002
specificity 0.285 0.002
external_motivation 0.169 0.005
affordance 0.237 0.008
difficulty -0.230 0.009
external_importance 0.151 0.014
frequency_R 0.639 0.017
visibility 0.141 0.020
control -0.220 0.033
intrinsic_motivation 0.128 0.034
basic_needs -0.131 0.061
ideal_motivation -0.146 0.063
importance 0.195 0.075
identified_motivation 0.148 0.193
construal_level 0.080 0.212
end_state_specificity_R 0.192 0.217
commonality -0.068 0.303
introjected_motivation 0.053 0.364
ought_motivation 0.052 0.428
connectedness -0.050 0.434
attainment_maintenance_R -0.035 0.512
approach_avoidance_R -0.051 0.542
social_desirability 0.058 0.559
attractiveness_progress -0.064 0.605
attractiveness_achievement -0.032 0.797
instrumentality -0.012 0.860
conflict 0.009 0.916

Descriptive on the differnces in progress

Generate differences in progress (progress_final - progress_base)

merged_progress_clean_w <- merged_progress_clean_w %>%
  mutate(progress_diff = progress_final - progress_base)

Overall descriptive

For long term goals, we assess the overall progress at baseline and at follow-ups we assess their progress out of the expected target they set for the three-month period, so the baseline progress can still serve as a co-variate but it doesn’t make sense to substract the baseline progres from the final progress. For the other two types of goals, the mean progress is positive and the changes among short-term goals are fairly large (4 on a 10-point scale).

Group by goal types

describeBy(merged_progress_clean_w$progress_diff, merged_progress_clean_w$goalType, mat = T) %>%
  kable(format = "html", escape = F) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
item group1 vars n mean sd median trimmed mad min max range skew kurtosis se
X11 1 long-term 1 175 3.131429 3.408894 3 3.085106 2.9652 -6 10 16 0.1409869 -0.4983614 0.2576882
X12 2 recurrance 1 299 2.107023 3.541970 2 2.033195 2.9652 -8 11 19 0.1310583 0.0607720 0.2048374
X13 3 short-term 1 217 4.009217 4.057447 4 4.040000 4.4478 -8 11 19 -0.0703913 -0.6749279 0.2754375

Group by the final status: this somewhat validate the measure

describeBy(merged_progress_clean_w$progress_diff, merged_progress_clean_w$status_final, mat = T) %>%
  kable(format = "html", escape = F) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
item group1 vars n mean sd median trimmed mad min max range skew kurtosis se
X11 1 abandoned 1 79 -0.8227848 2.555835 0 -0.6923077 1.4826 -8 4 12 -0.6591064 0.3035138 0.2875540
X12 2 adjusted 1 32 2.1250000 3.414863 2 2.1538462 2.9652 -6 9 15 -0.0703330 -0.1373564 0.6036682
X13 3 completed 1 150 6.5266667 3.099462 7 6.6916667 2.9652 -2 11 13 -0.4747783 -0.5558802 0.2530700
X14 4 continued 1 430 2.4790698 3.171593 2 2.4069767 2.9652 -8 11 19 0.1927872 0.0891363 0.1529478

Group by the final time point: there’s no clean differences across different time-point.

describeBy(merged_progress_clean_w$progress_diff, merged_progress_clean_w$final_time, mat = T) %>%
  kable(format = "html", escape = F) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
item group1 vars n mean sd median trimmed mad min max range skew kurtosis se
X11 1 F1 1 70 2.957143 4.460570 3 3.107143 4.4478 -8 11 19 -0.2849853 -0.2641526 0.5331401
X12 2 F2 1 78 3.871795 4.455724 4 3.890625 5.9304 -5 11 16 0.0194395 -1.2644067 0.5045114
X13 3 F3 1 543 2.834254 3.542854 2 2.763218 2.9652 -8 11 19 0.1824350 -0.2513765 0.1520384

The distributions are normally spread and they look reasonable.

merged_progress_clean_w %>%
  filter(status_final %in% c("abandoned", "completed", "continued")) %>%
  ggplot(aes(x = progress_diff)) + 
  geom_histogram(fill = "orange") + 
  scale_x_continuous(breaks=seq(-10, 10, by = 1)) + 
  facet_grid(status_final~goalType)

ICC:

This is very similar to both the baseline and the final progress

mlm_progressDiff <- lmer(progress_diff ~ 1 + (1 | MTurkCode), data = merged_progress_clean_w)

VarCorr(mlm_progressDiff) %>%
  as_tibble() %>%
  mutate(ICC=vcov/sum(vcov)) %>%
  select(grp, ICC)
## # A tibble: 2 x 2
##   grp         ICC
##   <chr>     <dbl>
## 1 MTurkCode 0.244
## 2 Residual  0.756

Descriptive on the differences in satisfaction

Generate differences in satisfaction (satisfaction_final - satisfaction_base)

merged_progress_clean_w <- merged_progress_clean_w %>%
  mutate(satisfaction_diff = satisfaction_final - satisfaction_base)

Overall descriptive

Group by goal types: No clear differences across the three types and the changes are all small.

describeBy(merged_progress_clean_w$satisfaction_diff, merged_progress_clean_w$goalType, mat = T) %>%
  kable(format = "html", escape = F) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
item group1 vars n mean sd median trimmed mad min max range skew kurtosis se
X11 1 long-term 1 177 0.8926554 2.185906 1 0.8461538 1.4826 -5 6 11 0.2239604 0.0384371 0.1643027
X12 2 recurrance 1 299 0.8963211 2.114020 1 0.8921162 1.4826 -5 6 11 0.0805586 -0.0020173 0.1222569
X13 3 short-term 1 217 0.9861751 2.435234 1 0.9142857 2.9652 -4 6 10 0.2112809 -0.4595309 0.1653144

Group by final status: The differeces among completed goals make sense, the decrease in satisfaction among abandoned goals and the increase among continued goals are smaller than I expected, especially given that the average differences in progress among continued goals are fairly large.

describeBy(merged_progress_clean_w$satisfaction_diff, merged_progress_clean_w$status_final, mat = T) %>%
  kable(format = "html", escape = F) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
item group1 vars n mean sd median trimmed mad min max range skew kurtosis se
X11 1 abandoned 1 79 -1.0379747 1.564371 -1.0 -0.9846154 1.4826 -5 2 7 -0.4537986 -0.3105004 0.1760055
X12 2 adjusted 1 32 0.2500000 2.314052 0.0 0.1923077 2.9652 -4 5 9 0.0226972 -0.8153072 0.4090705
X13 3 completed 1 152 2.5789474 1.944686 2.0 2.5163934 1.4826 -2 6 8 0.2546586 -0.7767080 0.1577349
X14 4 continued 1 430 0.7488372 2.036310 0.5 0.7122093 2.2239 -5 6 11 0.1859582 0.0071811 0.0981996

Group by the final time point: The differences are mainly driven by goal status

describeBy(merged_progress_clean_w$satisfaction_diff, merged_progress_clean_w$final_time, mat = T) %>%
  kable(format = "html", escape = F) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
item group1 vars n mean sd median trimmed mad min max range skew kurtosis se
X11 1 F1 1 72 1.1527778 2.576490 1 1.2241379 1.4826 -5 6 11 -0.1959296 -0.1323998 0.3036423
X12 2 F2 1 78 1.3717949 2.609219 1 1.3593750 2.9652 -4 6 10 0.0767101 -0.7227886 0.2954359
X13 3 F3 1 543 0.8287293 2.119611 1 0.7862069 1.4826 -5 6 11 0.2221840 -0.0875914 0.0909612

surprisingly, a large portion of continued goals had no changes in people’s satisfaction scores, and the changes among abandoned goals are not as negative as I would expected.

merged_progress_clean_w %>%
  filter(status_final %in% c("abandoned", "completed", "continued")) %>%
  ggplot(aes(x = satisfaction_diff)) + 
  geom_histogram(fill = "orange") + 
  scale_x_continuous(breaks=seq(-10, 10, by = 1)) + 
  facet_grid(status_final~goalType)

ICC:

mlm_satisfactionDiff <- lmer(satisfaction_diff ~ 1 + (1 | MTurkCode), data = merged_progress_clean_w)

VarCorr(mlm_satisfactionDiff) %>%
  as_tibble() %>%
  mutate(ICC=vcov/sum(vcov)) %>%
  select(grp, ICC)
## # A tibble: 2 x 2
##   grp         ICC
##   <chr>     <dbl>
## 1 MTurkCode 0.147
## 2 Residual  0.853

Correlations between the differnces in DVs and baseline factor scores

For the following correlations, I excluded all the adjusted goals and long-term goals.

4-factor score

With all variables

# exclude goals that were adjusted at any follow-up
adjustedDf <- merged_progress_clean_w %>%
  filter(status_F1 == "adjusted" | status_F2 == "adjusted" | status_F3 == "adjusted")

long_termDf <- merged_progress_clean_w %>%
  filter(goalType == "long-term")

merged_progress_noAdj_longT_w <- merged_progress_clean_w %>%
  anti_join(adjustedDf, by = c("MTurkCode", "goal")) %>%
  anti_join(long_termDf, by = c("MTurkCode", "goal"))

# merge the factor score data with finalline progress
factorScore_4f_diff <- factorScore_4f %>%
  right_join(select(merged_progress_noAdj_longT_w, MTurkCode, goal, progress_diff, satisfaction_diff, status_final), by = c("MTurkCode", "goal"))

# correlate the correlations
final_corr_f4 <- factorScore_4f_diff %>%
  select(Value: satisfaction_diff) %>%
  cor(use = "pairwise.complete.obs")

# visualization
corrplot(final_corr_f4, method = "circle",number.cex = .7, order = "AOE", addCoef.col = "black",type = "upper",col= colorRampPalette(c("midnightblue","white", "orange"))(200))

Correlations with the differences in progress

Group by goal type: The relationships between factor scores and the differences in progress are very weak

factorScore_4f_diff %>%
  group_by(goalType) %>%   
  summarise(across(c(Value:Consensus), ~cor(.x, progress_diff, use = "pairwise.complete.obs")),
            total_goal = n()) %>%
  kable(format = "html", escape = F, caption = "Correlations between progress difference and 4-factor scores") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
Correlations between progress difference and 4-factor scores
goalType Value Clarity External Consensus total_goal
recurrance 0.0392881 0.1194290 0.0354510 0.0219109 321
short-term -0.0003428 0.0728943 0.0177073 -0.0132115 230

Group by final status: similarly, the relationships between factor scores and the differences in progress are very weak

factorScore_4f_diff %>%
  drop_na(status_final) %>%
  group_by(status_final) %>%   
  summarise(across(c(Value:Consensus), ~cor(.x, progress_diff, use = "pairwise.complete.obs")),
            total_goal = n()) %>%
  kable(format = "html", escape = F, caption = "Correlations between progress difference and 4-factor scores") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
Correlations between progress difference and 4-factor scores
status_final Value Clarity External Consensus total_goal
abandoned 0.1439497 -0.0090075 0.1579186 0.1147006 57
completed -0.0505293 -0.0821278 -0.0483586 0.0814199 125
continued -0.0354628 0.0768295 -0.0570314 -0.0337648 285

Grouped by final status * goal type: the relationships between the 4-factor socres are weak among continued recurrence goals. For the rest of the groups, it’s hard to interpret because their sample size is too small. For the completed short-term goals, we don’t have the restricted range problem here as we did for the final progress, but the relationships are still very weak < .2

factorScore_4f_diff %>%
  drop_na(status_final) %>%
  group_by(status_final, goalType) %>%
  summarise(across(c(Value:Consensus), ~cor(.x, progress_diff, use = "pairwise.complete.obs")),
            total_goal = n()) %>%
  kable(format = "html", escape = F) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
status_final goalType Value Clarity External Consensus total_goal
abandoned recurrance -0.0411846 -0.2153409 0.0587261 0.0127724 34
abandoned short-term 0.4657866 0.2874423 0.2154953 0.3326553 23
completed recurrance 0.0901850 0.1170353 0.0310480 0.1197367 33
completed short-term -0.0310108 -0.1577541 -0.0850076 0.1570983 92
continued recurrance -0.0743459 0.1062170 -0.0603492 -0.0290552 202
continued short-term 0.0540879 0.0120914 -0.0441888 -0.0482097 83

Correlations with the differences in satisfaction

Exclude only the adjusted goals for the following analysis with satisfaction

# exclude the adjusted goals 

merged_progress_noAdj_w <- merged_progress_clean_w %>%
  anti_join(adjustedDf, by = c("MTurkCode", "goal"))

# merge the factor score data with differences in DVs
factorScore_4f_diff <- factorScore_4f %>%
  right_join(select(merged_progress_noAdj_w, MTurkCode, goal, progress_diff, satisfaction_diff, status_final), by = c("MTurkCode", "goal"))

Group by goal type: The relationships between factor scores and the differences in satisfaction are very weak, except that external may be positively related to differences in satisfaction among long-term goals, which is driven by the positiive relationship between external and final satisfaction

factorScore_4f_diff %>%
  group_by(goalType) %>%   
  summarise(across(c(Value:Consensus), ~cor(.x, satisfaction_diff, use = "pairwise.complete.obs")),
            total_goal = n()) %>%
  kable(format = "html", escape = F, caption = "Correlations between satisfaction difference and 4-factor scores") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
Correlations between satisfaction difference and 4-factor scores
goalType Value Clarity External Consensus total_goal
long-term -0.0659105 -0.1424106 0.1996258 0.0212275 191
recurrance 0.0779443 0.0885843 0.0653205 0.0641917 321
short-term -0.0356988 0.0211771 0.0672662 -0.0022790 230

Group by final status: clarity has negative relationships with differences in satisfaction among abandoned and completed goals and consensus has a positive relationship among completed goals. This pattern is differenct from the relationships between final satisfaction and the factor scores.

factorScore_4f_diff %>%
  drop_na(status_final) %>%
  group_by(status_final) %>%   
  summarise(across(c(Value:Consensus), ~cor(.x, satisfaction_diff, use = "pairwise.complete.obs")),
            total_goal = n()) %>%
  kable(format = "html", escape = F, caption = "Correlations between satisfaction difference and 4-factor scores") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
Correlations between satisfaction difference and 4-factor scores
status_final Value Clarity External Consensus total_goal
abandoned -0.0176081 -0.2956209 0.0653710 -0.0174572 72
completed -0.0354384 -0.2060854 0.0416495 0.2041077 149
continued -0.0238998 -0.0044727 0.0649759 0.0279223 411

Grouped by final status * goal type: It seems like there’s a positive relationship between changes in satisfaction and external among continued long-term goals and a positive relationship with consensus among completed short-term goals.

factorScore_4f_diff %>%
  drop_na(status_final) %>%
  group_by(status_final, goalType) %>%
  summarise(across(c(Value:Consensus), ~cor(.x, satisfaction_diff, use = "pairwise.complete.obs")),
            total_goal = n()) %>%
  kable(format = "html", escape = F) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
status_final goalType Value Clarity External Consensus total_goal
abandoned long-term 0.0872081 -0.2010076 0.4691874 0.3402471 15
abandoned recurrance -0.0316278 -0.4070358 0.0524494 -0.1491836 34
abandoned short-term -0.1968659 -0.1573201 -0.3615956 -0.0419953 23
completed long-term -0.3734803 -0.5767146 -0.1225704 0.1381671 24
completed recurrance 0.1891442 -0.0721518 -0.0356058 0.2185533 33
completed short-term 0.0171491 -0.1126833 0.1140369 0.2607106 92
continued long-term -0.0629739 -0.1231664 0.2085611 0.0286050 126
continued recurrance -0.0120457 0.1340274 0.0163822 0.0578360 202
continued short-term 0.0089015 -0.0575893 -0.0214324 -0.0817185 83

6-factor scores

with all variables:

# merge the factor score data with finalline progress
factorScore_6f_diff <- factorScore_6f %>%
  right_join(select(merged_progress_noAdj_longT_w, MTurkCode, goal, progress_diff, satisfaction_diff, status_final), by = c("MTurkCode", "goal"))

# correlate the correlations
final_corr_f6 <- factorScore_6f_diff %>%
  select(Value: satisfaction_diff) %>%
  cor(use = "pairwise.complete.obs")

# visualization
corrplot(final_corr_f6, method = "circle",number.cex = .7, order = "AOE", addCoef.col = "black",type = "upper",col= colorRampPalette(c("midnightblue","white", "orange"))(200))

Correlation with differences in progress:

Group by goal type: The relationships between factor scores and the differences in progress are very weak

factorScore_6f_diff %>%
  group_by(goalType) %>%   
  summarise(across(c(Value:Instrumentality), ~cor(.x, progress_diff, use = "pairwise.complete.obs")),
            total_goal = n()) %>%
  kable(format = "html", escape = F, caption = "Correlations between progress difference and 4-factor scores") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
Correlations between progress difference and 4-factor scores
goalType Value External Attainability Consensus Measurability Instrumentality total_goal
recurrance 0.0371953 0.0182270 0.0857612 0.0219109 0.1270485 0.0597198 321
short-term 0.0286694 -0.0005247 0.0302864 -0.0132115 0.0615643 -0.0896985 230

Group by final status: similarly, the relationships between factor scores and the differences in progress are very weak. The strongest relationship is a negative correlation between completed goals are instrumentality.

factorScore_6f_diff %>%
  drop_na(status_final) %>%
  group_by(status_final) %>%   
  summarise(across(c(Value:Instrumentality), ~cor(.x, progress_diff, use = "pairwise.complete.obs")),
            total_goal = n()) %>%
  kable(format = "html", escape = F, caption = "Correlations between progress difference and 4-factor scores") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
Correlations between progress difference and 4-factor scores
status_final Value External Attainability Consensus Measurability Instrumentality total_goal
abandoned 0.1336166 0.1157844 -0.0737962 0.1147006 -0.0853399 0.0051336 57
completed -0.0233286 -0.0662958 -0.1440056 0.0814199 0.0298926 -0.1724287 125
continued -0.0530906 -0.0657432 -0.0070390 -0.0337648 0.1037463 0.0235755 285

Grouped by final status * goal type: The negative correlation between attainability and completed short-term goals may be driven by the positive relationship between baseline progress and attainability.

factorScore_6f_diff %>%
  drop_na(status_final) %>%
  group_by(status_final, goalType) %>%
  summarise(across(c(Value:Instrumentality), ~cor(.x, progress_diff, use = "pairwise.complete.obs")),
            total_goal = n()) %>%
  kable(format = "html", escape = F) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
status_final goalType Value External Attainability Consensus Measurability Instrumentality total_goal
abandoned recurrance -0.0261557 0.0094150 -0.2215489 0.0127724 -0.3176191 -0.1567662 34
abandoned short-term 0.4031952 0.1556104 0.0611213 0.3326553 0.3017943 0.3890509 23
completed recurrance 0.1515601 -0.0298642 -0.0405592 0.1197367 0.2921775 -0.0915907 33
completed short-term -0.0316960 -0.0849016 -0.2324008 0.1570983 -0.0756930 -0.1099649 92
continued recurrance -0.0932573 -0.0650893 0.0431225 -0.0290552 0.1383606 0.0308878 202
continued short-term 0.0493442 -0.0603414 -0.1229295 -0.0482097 0.0240036 0.0011588 83

Correlations with differences in satisfaction

only exclude adjusted goals for the following analysis

factorScore_6f_diff <- factorScore_6f %>%
  right_join(select(merged_progress_noAdj_w, MTurkCode, goal, progress_diff, satisfaction_diff, status_final), by = c("MTurkCode", "goal"))

Group by goal type: The relationships between factor scores and the differences in satisfaction are very weak, except the possible positive correlation between external and differences in satisfaction among long-term goals.

factorScore_6f_diff %>%
  group_by(goalType) %>%   
  summarise(across(c(Value:Instrumentality), ~cor(.x, satisfaction_diff, use = "pairwise.complete.obs")),
            total_goal = n()) %>%
  kable(format = "html", escape = F, caption = "Correlations between satisfaction difference and 4-factor scores") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
Correlations between satisfaction difference and 4-factor scores
goalType Value External Attainability Consensus Measurability Instrumentality total_goal
long-term -0.0871401 0.1884293 -0.0788600 0.0212275 -0.0800691 -0.0714063 191
recurrance 0.0736412 0.0454325 0.0563091 0.0641917 0.1007545 0.0697883 321
short-term -0.0290879 0.0373850 0.0081064 -0.0022790 0.0027581 -0.0952865 230

Group by final status: there are negative relationships between attainability and the differences in satisfaction among abandoned and completed goals. The correlations are stronger than those with the clarity factor from the 4-factor model

factorScore_6f_diff %>%
  drop_na(status_final) %>%
  group_by(status_final) %>%   
  summarise(across(c(Value:Instrumentality), ~cor(.x, satisfaction_diff, use = "pairwise.complete.obs")),
            total_goal = n()) %>%
  kable(format = "html", escape = F, caption = "Correlations between satisfaction difference and 4-factor scores") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
Correlations between satisfaction difference and 4-factor scores
status_final Value External Attainability Consensus Measurability Instrumentality total_goal
abandoned -0.0831586 0.0729197 -0.3676196 -0.0174572 -0.1156324 0.0424149 72
completed -0.0513970 0.0047008 -0.2749020 0.2041077 -0.0645779 -0.1105696 149
continued -0.0436933 0.0496129 -0.0057933 0.0279223 -0.0193122 0.0007884 411

Grouped by final status * goal type: The differences in satisfaction showed an interesting negative relationship with attainability and a positive relationship with consensus

factorScore_6f_diff %>%
  drop_na(status_final) %>%
  group_by(status_final, goalType) %>%
  summarise(across(c(Value:Instrumentality), ~cor(.x, satisfaction_diff, use = "pairwise.complete.obs")),
            total_goal = n()) %>%
  kable(format = "html", escape = F) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
status_final goalType Value External Attainability Consensus Measurability Instrumentality total_goal
abandoned long-term 0.0512492 0.4544550 0.1093867 0.3402471 -0.1243831 0.1935554 15
abandoned recurrance -0.0692659 0.0540672 -0.5025140 -0.1491836 -0.1251046 -0.1314198 34
abandoned short-term -0.3022866 -0.3451051 -0.2664607 -0.0419953 -0.0805766 0.1975437 23
completed long-term -0.3958930 -0.0780967 -0.4881646 0.1381671 -0.3715121 -0.2204700 24
completed recurrance 0.1936366 -0.1038492 -0.2109258 0.2185533 0.1045970 0.1569290 33
completed short-term -0.0065721 0.0643473 -0.2415215 0.2607106 -0.0236993 -0.1253141 92
continued long-term -0.0844646 0.1947023 -0.0919962 0.0286050 -0.0880786 -0.0787986 126
continued recurrance -0.0142558 0.0014703 0.1007015 0.0578360 0.1073972 0.0166597 202
continued short-term -0.0268178 -0.0345143 -0.0897976 -0.0817185 -0.1143807 0.0493428 83

Descriptive on average striving behaviors

All variables are measured on a 7-point scale

Overall descriptive

calculate average striving behavior ratings across all follow-ups.

merged_progress_clean_w <- merged_progress_clean_w %>%
  mutate(followup_num = rowSums(!is.na(select(merged_progress_clean_w, status_F1, status_F2, status_F3)))) %>%
  mutate(AR_mean = rowSums(dplyr :: select(., AR_F1, AR_F2,AR_F3), na.rm = T) / followup_num,
         commitment_mean = rowSums(dplyr :: select(., commitment_F1, commitment_F2,commitment_F3), na.rm = T) / followup_num,
         effort_mean = rowSums(dplyr :: select(., effort_F1, effort_F2, effort_F3), na.rm = T) / followup_num,
         plan_mean = rowSums(dplyr :: select(., plan_F1, plan_F2,plan_F3), na.rm = T) / followup_num,
         resources_other_mean = rowSums(dplyr :: select(., resources_other_F1, resources_other_F2,resources_other_F3), na.rm = T) / followup_num,
         resources_self_mean = rowSums(dplyr :: select(., resources_self_F1, resources_self_F2,resources_self_F3), na.rm = T) / followup_num,
         urgency_mean = rowSums(dplyr :: select(., urgency_F1, urgency_F2,urgency_F3), na.rm = T) / followup_num, 
         ACRISS_mean = rowSums(dplyr :: select(., ACRISS_F1, ACRISS_F2,ACRISS_F3), na.rm = T) / followup_num, )

descriptive on each striving variable: the ratings on these variables were different across different final status groups

# descriptive stats for each variable 
merged_progress_clean_w %>%
  dplyr::select(commitment_mean: ACRISS_mean, goalType,status_final ) %>%
  filter(status_final %in% c("abandoned", "completed", "continued")) %>%
  gather(commitment_mean: ACRISS_mean, key = "variable", value = "rating") %>%
  group_by(variable, status_final) %>%
  summarize(mean = mean(rating, na.rm = TRUE),
            sd = sd(rating, na.rm = TRUE), 
            n = n(),
            min = min(rating, na.rm = TRUE),
            max = max(rating, na.rm = TRUE),
            skew = skew(rating, na.rm = T), 
            kurtosi = kurtosi(rating, na.rm = T)
            ) %>%
  arrange(variable) %>%
  kable(format = "html", escape = F) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
variable status_final mean sd n min max skew kurtosi
ACRISS_mean abandoned 3.272292 0.5685000 80 1.666667 4.666667 -0.1849565 -0.0372370
ACRISS_mean completed 2.089072 0.5102247 152 1.000000 4.333333 1.5755962 4.3925938
ACRISS_mean continued 2.377852 0.5201744 447 1.355556 4.222222 0.6182702 0.2346251
commitment_mean abandoned 2.591667 1.3516412 80 1.000000 7.000000 0.8716935 0.2468120
commitment_mean completed 6.228070 1.1031569 152 1.000000 7.000000 -1.7543350 3.5303725
commitment_mean continued 5.007084 1.4829246 447 1.000000 7.000000 -0.4611037 -0.6860031
effort_mean abandoned 2.556250 1.3622765 80 0.500000 7.000000 0.9473132 0.7497691
effort_mean completed 5.546053 1.3784045 152 1.000000 7.000000 -0.7176395 -0.1379350
effort_mean continued 4.538777 1.4811093 447 1.000000 7.000000 -0.1767642 -0.7207488
plan_mean abandoned 3.510417 1.5490898 80 1.000000 7.000000 0.2328215 -0.6668215
plan_mean completed 6.020833 1.1302764 152 2.500000 7.000000 -1.0223498 0.3322989
plan_mean continued 5.124907 1.3353390 447 1.000000 7.000000 -0.7766584 0.2214281
resources_other_mean abandoned 2.897917 1.5995986 80 1.000000 7.000000 0.6116149 -0.4565321
resources_other_mean completed 4.186403 2.0717390 152 1.000000 7.000000 -0.2228536 -1.2795393
resources_other_mean continued 3.714019 1.7237771 447 1.000000 7.000000 0.0208801 -1.0937377
resources_self_mean abandoned 4.675000 1.3908734 80 1.666667 7.000000 -0.2909833 -0.6213189
resources_self_mean completed 6.264254 0.9020140 152 2.500000 7.000000 -1.5777454 2.8587103
resources_self_mean continued 5.687174 1.1202665 447 1.000000 7.000000 -0.9040585 0.6267975
urgency_mean abandoned 2.710417 1.3865295 80 1.000000 7.000000 0.8103190 0.4948579
urgency_mean completed 5.383772 1.6219202 152 1.000000 7.000000 -0.8515314 0.0064397
urgency_mean continued 4.534303 1.4572693 447 1.000000 7.000000 -0.1827949 -0.5554729

histogram:Most distribution looks normal, except the extreme level on commitment (little less than 20% people rated 7 )

merged_progress_clean_w %>%
  select(commitment_mean: ACRISS_mean) %>%
  gather(commitment_mean: ACRISS_mean, key = "variable", value = "rating") %>%
  ggplot(aes(x = rating)) +
    geom_histogram(fill   = "orange",
                   colour = "black",
                   alpha  = .6) +
  facet_wrap(~variable)

ICC

# ACRISS
mlm <-lmer(ACRISS_mean ~ 1 + (1|MTurkCode), data = merged_progress_clean_w)

ACRISS <- VarCorr(mlm) %>%
  as_tibble() %>%
  mutate(ACRISS=vcov/sum(vcov)) %>%
  dplyr :: select(ACRISS)

# commitment 
mlm <-lmer(commitment_mean ~ 1 + (1|MTurkCode), data = merged_progress_clean_w)

commitment <- VarCorr(mlm) %>%
  as_tibble() %>%
  mutate(commitment=vcov/sum(vcov)) %>%
  dplyr :: select(commitment)

# effort 
mlm <-lmer(effort_mean ~ 1 + (1|MTurkCode), data = merged_progress_clean_w)

effort <- VarCorr(mlm) %>%
  as_tibble() %>%
  mutate(effort=vcov/sum(vcov)) %>%
  dplyr :: select(effort)
# plan
mlm <-lmer(plan_mean ~ 1 + (1|MTurkCode), data = merged_progress_clean_w)

plan <- VarCorr(mlm) %>%
  as_tibble() %>%
  mutate(plan=vcov/sum(vcov)) %>%
  dplyr :: select(plan)
# resources_other
mlm <-lmer(resources_other_mean ~ 1 + (1|MTurkCode), data = merged_progress_clean_w)

resources_other <- VarCorr(mlm) %>%
  as_tibble() %>%
  mutate(resources_other=vcov/sum(vcov)) %>%
  dplyr :: select(resources_other)
# resources_self
mlm <-lmer(resources_self_mean ~ 1 + (1|MTurkCode), data = merged_progress_clean_w)

resources_self <- VarCorr(mlm) %>%
  as_tibble() %>%
  mutate(resources_self=vcov/sum(vcov)) %>%
  dplyr :: select(resources_self)

# urgency
mlm <-lmer(urgency_mean ~ 1 + (1|MTurkCode), data = merged_progress_clean_w)

urgency <- VarCorr(mlm) %>%
  as_tibble() %>%
  mutate(urgency=vcov/sum(vcov)) %>%
  dplyr :: select(urgency)

# combine the outputs into one data frame
strive_icc <- data.frame("Variance" = c("between subject", "within subject"))
strive_icc <- bind_cols(strive_icc, ACRISS, commitment, effort, plan,resources_other, resources_self, urgency)

strive_icc %>% kable(format = "html", escape = F) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
Variance ACRISS commitment effort plan resources_other resources_self urgency
between subject 0.1908244 0.1546912 0.201107 0.2981519 0.5495971 0.2966003 0.2021179
within subject 0.8091756 0.8453088 0.798893 0.7018481 0.4504029 0.7033997 0.7978821

Correlations among DVs, average striving behaviors and baseline factor scores

Adjusted goals were excluded from all following analysis

merged_progress_noAdj_w <- merged_progress_clean_w %>%
  anti_join(adjustedDf, by = c("MTurkCode", "goal"))

4-factor scores:

Consensus factor correlate little with the striving variables, but the other three positively correlate with striving behaviors like commitment, effort, urgency, which correlate with the DVs. However, these factor scores are not correlate with DVs directly.

# merge the factor score data with strving behavior data
factorScore_4f_diff <- factorScore_4f %>%
  right_join(select(merged_progress_noAdj_w, MTurkCode, goal, progress_diff, progress_base,progress_final, satisfaction_diff, satisfaction_base, satisfaction_final, commitment_mean: ACRISS_mean), by = c("MTurkCode", "goal"))

# correlate the correlations
final_corr_f4 <- factorScore_4f_diff %>%
  select(Value: ACRISS_mean) %>%
  cor(use = "pairwise.complete.obs")

# visualization
corrplot(final_corr_f4, method = "circle",number.cex = .7, order = "AOE", addCoef.col = "black",type = "upper",col= colorRampPalette(c("midnightblue","white", "orange"))(200), tl.col = c("darkorange1", "darkorange1", "darkorange1", "darkorange1", "midnightblue", "midnightblue", "midnightblue","midnightblue", "midnightblue","midnightblue","red","red", "red", "darkorange1", "darkorange1", "red", "midnightblue"))

6-factor scores:

Other than the correlation with attainability, there’s no major differences between the two factor model.

# merge the factor score data with strving behavior data
factorScore_6f_diff <- factorScore_6f %>%
  right_join(select(merged_progress_noAdj_w, MTurkCode, goal, progress_diff, progress_base,progress_final, satisfaction_diff, satisfaction_base, satisfaction_final, commitment_mean: ACRISS_mean), by = c("MTurkCode", "goal"))

# correlate the correlations
final_corr_f6 <- factorScore_6f_diff %>%
  select(Value: ACRISS_mean) %>%
  cor(use = "pairwise.complete.obs")

# visualization
corrplot(final_corr_f6, method = "circle",number.cex = .7, order = "AOE", addCoef.col = "black",type = "upper",col= colorRampPalette(c("midnightblue","white", "orange"))(200), tl.col = c("midnightblue", "red", "red", "darkorange1", "darkorange1", "red", "red","red", "red","midnightblue","midnightblue","midnightblue", "midnightblue", "midnightblue", "midnightblue", "red", "darkorange1", "darkorange1", "darkorange1", "darkorange1"))

Correlation between DVs and individual baseline goal representation variables

Overall, the correlations between DVs and baseline goal representation variables are weak.

# merge baseline variable with the differnces in DVs
baseline_goalRep_progress <- merged_progress_clean_w %>%
  select(MTurkCode, goal, progress_diff, satisfaction_diff, progress_base, progress_final, satisfaction_base, satisfaction_final) %>%
  left_join(select(baseline_goalRep, MTurkCode, goal, attainability:visibility), by = c("MTurkCode", "goal"))

# correlate the correlations
corr_dv_baseRep <- baseline_goalRep_progress %>%
  select(progress_diff: visibility) %>%
  cor(use = "pairwise.complete.obs")

# visualization
corrplot(corr_dv_baseRep, method = "circle",number.cex = .7, order = "AOE", addCoef.col = "black",type = "upper",col= colorRampPalette(c("midnightblue","white", "orange"))(200))

correlations between final DVs and post factor scores

All post factor scores are unit scores generated based on the baseline factor model

4-factor scores:

With all the variables

The correlations between post factor scores are very similar to those of the baseline factor scores

factorScore_4f_post <- factorScore_4f_post %>%
  right_join(select(merged_progress_noAdj_w, MTurkCode, goal, progress_diff, satisfaction_diff, progress_base, progress_final, satisfaction_base, satisfaction_final, goalType, status_final), by = c("MTurkCode", "goal"))

# correlate the correlations
post_corr_f4 <- factorScore_4f_post %>%
  select(Value: satisfaction_final) %>%
  cor(use = "pairwise.complete.obs")

# visualization
corrplot(post_corr_f4, method = "circle",number.cex = .7, order = "AOE", addCoef.col = "black",type = "upper",col= colorRampPalette(c("midnightblue","white", "orange"))(200))

Correlations with fianl progress

Grouped by goal type: Compared to the baseline factor scores, the relationships between the final progress and post value and consensus are stronger even though they are still pretty weak. The positive relationship with clarity is fairly strong

factorScore_4f_post %>%
  group_by(goalType) %>%   
  summarise(across(c(Value:Consensus), ~cor(.x, progress_final, use = "pairwise.complete.obs")),
            total_goal = n()) %>%
  kable(format = "html", escape = F, ) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
goalType Value Clarity External Consensus total_goal
long-term 0.1733811 0.5901386 0.1396388 -0.2048001 191
recurrance 0.1420526 0.6591979 0.1123901 -0.0471908 321
short-term 0.1087231 0.6298990 0.1908695 -0.1417483 230

Grouped by final status: Very similar to the baseline factor score: Goals that are either abandoned or completed had limited variations in their final progress. Among the goals that are still continuing, only clarity positively correlate with final progress.

factorScore_4f_post %>%
  drop_na(status_final) %>%
  group_by(status_final) %>%
  summarise(across(c(Value:Consensus), ~cor(.x, progress_final, use = "pairwise.complete.obs")),
            total_goal = n()) %>%
  kable(format = "html", escape = F) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
status_final Value Clarity External Consensus total_goal
abandoned 0.1707726 0.1457944 0.0894599 -0.0501610 72
completed 0.0237599 0.4201678 0.0583003 0.0745075 149
continued 0.0153511 0.4636174 0.0445121 -0.1364634 411

Grouped by goal type * final status: the positive relationship with post clarity score is strong than with the baseline clarity score. Among continued long-term goals, the final progress slightly correlated with baseline external but not with post external score and it doesn’t correlate with basline consensus score but has a slight negative correlation with post consensus score.

factorScore_4f_post %>%
  drop_na(status_final) %>%
  group_by(status_final, goalType) %>%
  summarise(across(c(Value:Consensus), ~cor(.x, progress_final, use = "pairwise.complete.obs")),
            total_goal = n()) %>%
  kable(format = "html", escape = F) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
status_final goalType Value Clarity External Consensus total_goal
abandoned long-term 0.3258740 0.6074642 -0.0054103 -0.1869232 15
abandoned recurrance -0.1126947 0.0159094 -0.0282622 -0.0460038 34
abandoned short-term 0.1451295 -0.0326705 0.3381289 -0.0584157 23
completed long-term 0.0501232 0.2229130 0.0726417 0.1813062 24
completed recurrance 0.1044534 0.6299672 0.1117481 0.2648827 33
completed short-term 0.0158853 0.3258848 -0.0863395 -0.0346363 92
continued long-term 0.0871984 0.4402923 0.0472116 -0.2128010 126
continued recurrance -0.0585349 0.5495203 0.0679804 -0.1134180 202
continued short-term 0.1197004 0.3118421 0.0682834 -0.1430417 83

Correlations with final satisfaction

Grouped by goal type: the positive relationship with post clarity and external are stronger than those with baseline clarity and external, and it also slightly correlate with value.

factorScore_4f_post %>%
  group_by(goalType) %>%   
  summarise(across(c(Value:Consensus), ~cor(.x, satisfaction_final, use = "pairwise.complete.obs")),
            total_goal = n()) %>%
  kable(format = "html", escape = F, ) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
goalType Value Clarity External Consensus total_goal
long-term 0.1767122 0.6608269 0.2184295 -0.1902801 191
recurrance 0.1538647 0.6690722 0.1278989 -0.0751069 321
short-term 0.0682859 0.6712337 0.1707683 -0.1623117 230

Grouped by final status: It’s interesting to see that the relationships with post value and consensus scores are the opposite between abandoned goals and completed goals. Similar to baseline factor scores, the post clarity only correlate with post satisfaction among completed and continued goals.

factorScore_4f_post %>%
  drop_na(status_final) %>%
  group_by(status_final) %>%
  summarise(across(c(Value:Consensus), ~cor(.x, satisfaction_final, use = "pairwise.complete.obs")),
            total_goal = n()) %>%
  kable(format = "html", escape = F) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
status_final Value Clarity External Consensus total_goal
abandoned -0.1012869 0.0914512 -0.0134217 -0.2035848 72
completed 0.1174601 0.5516815 0.1051926 0.1338470 149
continued 0.0470685 0.5352888 0.1040676 -0.1328488 411

Grouped by goal type * final status: the relationship with post value and post consensus are stronger than those at baseline among the continued long-term goals even though they are still very weak.

factorScore_4f_post %>%
  drop_na(status_final) %>%
  group_by(status_final, goalType) %>%
  summarise(across(c(Value:Consensus), ~cor(.x, satisfaction_final, use = "pairwise.complete.obs")),
            total_goal = n()) %>%
  kable(format = "html", escape = F) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
status_final goalType Value Clarity External Consensus total_goal
abandoned long-term 0.1026255 0.6388260 0.0743021 -0.0105443 15
abandoned recurrance -0.3493643 0.0641695 -0.0847837 -0.3215312 34
abandoned short-term -0.4393812 -0.3713525 -0.1491386 -0.4615597 23
completed long-term 0.1824361 0.4813574 0.4352635 0.1886701 24
completed recurrance 0.2670938 0.6977084 0.1757457 0.3194823 33
completed short-term 0.1017996 0.5438455 -0.0727763 0.0673259 92
continued long-term 0.1401614 0.5616997 0.1666489 -0.1823533 126
continued recurrance 0.0084282 0.5786143 0.0947906 -0.1167515 202
continued short-term 0.0098105 0.4550095 0.0729577 -0.1681724 83

6-factor scores:

With all variables

The correlations between the 6 factors are similar to the baseline

factorScore_6f_post <- factorScore_6f_post %>%
  right_join(select(merged_progress_noAdj_w, MTurkCode, goal, progress_diff, satisfaction_diff, progress_base, progress_final, satisfaction_base, satisfaction_final, goalType, status_final), by = c("MTurkCode", "goal"))

# correlate the correlations
post_corr_f6 <- factorScore_6f_post %>%
  select(Value: satisfaction_base) %>%
  cor(use = "pairwise.complete.obs")

# visualization
corrplot(post_corr_f6, method = "circle",number.cex = .7, order = "AOE", addCoef.col = "black",type = "upper",col= colorRampPalette(c("midnightblue","white", "orange"))(200))

Correlations with fianl progress

Grouped by goal type: Compared to the baseline factor scores, the relationships between the final progress and post value consensus and instrumentality are stronger even though they are still pretty weak. The positive relationship with attainability is very strong

factorScore_6f_post %>%
  group_by(goalType) %>%   
  summarise(across(c(Value:Instrumentality), ~cor(.x, progress_final, use = "pairwise.complete.obs")),
            total_goal = n()) %>%
  kable(format = "html", escape = F, ) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
goalType Value External Attainability Consensus Measurability Instrumentality total_goal
long-term 0.1961513 0.1235441 0.7280173 -0.2048001 0.2155596 0.1286315 191
recurrance 0.2079579 0.0892883 0.7999855 -0.0471908 0.2169392 0.1503792 321
short-term 0.1495419 0.1678083 0.6982272 -0.1417483 0.2261966 0.1424433 230

Grouped by final status: Among continued goals, the relationships with attainability is very high and it’s stronger than with the baseline attainability. The relationships with value, external and instrumentality mainly come from abandoned goals, but the sample size is rather small

factorScore_6f_post %>%
  drop_na(status_final) %>%
  group_by(status_final) %>%
  summarise(across(c(Value:Instrumentality), ~cor(.x, progress_final, use = "pairwise.complete.obs")),
            total_goal = n()) %>%
  kable(format = "html", escape = F) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
status_final Value External Attainability Consensus Measurability Instrumentality total_goal
abandoned 0.1485417 0.1423359 0.2814464 -0.0501610 0.0588489 0.1817004 72
completed 0.0408515 0.0197800 0.3660278 0.0745075 0.3175898 0.0078276 149
continued 0.0561579 0.0392718 0.6376825 -0.1364634 0.1053087 0.0837678 411

Grouped by goal type * final status: The positive relationship with attainability is stronger than the baseline, but the post progress is no longer correlate with external even tough its relationship with baseline external is very weak.

factorScore_6f_post %>%
  drop_na(status_final) %>%
  group_by(status_final, goalType) %>%
  summarise(across(c(Value:Instrumentality), ~cor(.x, progress_final, use = "pairwise.complete.obs")),
            total_goal = n()) %>%
  kable(format = "html", escape = F) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
status_final goalType Value External Attainability Consensus Measurability Instrumentality total_goal
abandoned long-term 0.3758986 0.0773865 0.6485621 -0.1869232 0.1353221 0.3521060 15
abandoned recurrance -0.2415407 -0.0394216 0.0664749 -0.0460038 0.1115434 0.1300656 34
abandoned short-term 0.1522832 0.4364747 0.1219388 -0.0584157 -0.1136824 0.0156560 23
completed long-term 0.0171376 0.0483789 0.2878568 0.1813062 0.0718681 0.0164434 24
completed recurrance 0.1520450 0.0767900 0.5948689 0.2648827 0.6777720 0.0725449 33
completed short-term 0.0383559 -0.1187003 0.1837005 -0.0346363 0.1815437 0.0388718 92
continued long-term 0.1055531 0.0562843 0.6263109 -0.2128010 0.1612258 0.0841745 126
continued recurrance 0.0277484 0.0493729 0.7476241 -0.1134180 0.1565894 -0.0204238 202
continued short-term 0.1098845 0.0774772 0.3639261 -0.1430417 0.0539275 0.1709571 83

Correlations with final satisfaction

Grouped by goal type: The positive relationship with value is stronger compared to the baseline

factorScore_6f_post %>%
  group_by(goalType) %>%   
  summarise(across(c(Value:Instrumentality), ~cor(.x, satisfaction_final, use = "pairwise.complete.obs")),
            total_goal = n()) %>%
  kable(format = "html", escape = F, ) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
goalType Value External Attainability Consensus Measurability Instrumentality total_goal
long-term 0.2268206 0.2021722 0.7629654 -0.1902801 0.3180387 0.1190700 191
recurrance 0.2246014 0.0971241 0.7898147 -0.0751069 0.1993175 0.1563845 321
short-term 0.1070067 0.1362436 0.7747234 -0.1623117 0.1603736 0.1540615 230

Grouped by final status: The final satisfaction among continued goals only correlate with attainability and among completed goals it has a slightly positive relationship with value.

factorScore_6f_post %>%
  drop_na(status_final) %>%
  group_by(status_final) %>%
  summarise(across(c(Value:Instrumentality), ~cor(.x, satisfaction_final, use = "pairwise.complete.obs")),
            total_goal = n()) %>%
  kable(format = "html", escape = F) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
status_final Value External Attainability Consensus Measurability Instrumentality total_goal
abandoned -0.1146101 0.0102465 0.2330892 -0.2035848 -0.0718138 0.0514956 72
completed 0.1811599 0.0463941 0.4887445 0.1338470 0.3625529 0.0602137 149
continued 0.0927562 0.0907683 0.7011751 -0.1328488 0.1195816 0.1089621 411

Grouped by goal type * final status: Among continued goals, only for the long-term goals the final satisfaction relates to other factors besides attainability even though it’s very weak.

factorScore_6f_post %>%
  drop_na(status_final) %>%
  group_by(status_final, goalType) %>%
  summarise(across(c(Value:Instrumentality), ~cor(.x, satisfaction_final, use = "pairwise.complete.obs")),
            total_goal = n()) %>%
  kable(format = "html", escape = F) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
status_final goalType Value External Attainability Consensus Measurability Instrumentality total_goal
abandoned long-term 0.1318190 0.1735273 0.6014539 -0.0105443 0.3678597 0.1610744 15
abandoned recurrance -0.3678799 -0.1506215 0.0910004 -0.3215312 0.0070542 -0.0818234 34
abandoned short-term -0.3666162 -0.1237462 0.0498102 -0.4615597 -0.7333460 -0.2940525 23
completed long-term 0.2343187 0.3328345 0.0688718 0.1886701 0.4566795 0.0443847 24
completed recurrance 0.3506582 0.1238761 0.6628055 0.3194823 0.6624047 0.1168189 33
completed short-term 0.1729788 -0.1292619 0.4279765 0.0673259 0.2438183 0.1253096 92
continued long-term 0.1869030 0.1656673 0.7017229 -0.1823533 0.2916377 0.1016807 126
continued recurrance 0.0886496 0.0701758 0.7429123 -0.1167515 0.1434056 0.0365077 202
continued short-term -0.0249382 0.0611623 0.6096680 -0.1681724 -0.0492099 0.1913616 83

Correlations between the differences in DV and post factor scores

For the following correlations, I excluded long-term goals for the correlations with progress.

4-factor score:

factorScore_4f_post_noLong <- factorScore_4f_post %>% anti_join(long_termDf, by = c("MTurkCode", "goal"))

Correlations with the differences in progress

Grouped by goal type: similar to the baseline factor scores, the differences in progress only correlate with clarity

factorScore_4f_post_noLong %>%
  group_by(goalType) %>%   
  summarise(across(c(Value:Consensus), ~cor(.x, progress_diff, use = "pairwise.complete.obs")),
            total_goal = n()) %>%
  kable(format = "html", escape = F, ) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
goalType Value Clarity External Consensus total_goal
recurrance 0.0640043 0.4295748 0.0471214 0.0035573 321
short-term 0.0688262 0.4679822 0.1007903 -0.0715905 230

Grouped by final status: the differences in progress only correlate with clarity among completed and continued goals

factorScore_4f_post_noLong %>%
  drop_na(status_final) %>%
  group_by(status_final) %>%
  summarise(across(c(Value:Consensus), ~cor(.x, progress_diff, use = "pairwise.complete.obs")),
            total_goal = n()) %>%
  kable(format = "html", escape = F) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
status_final Value Clarity External Consensus total_goal
abandoned 0.0174673 0.0576490 0.0899795 0.1142524 57
completed -0.0434347 0.1847681 -0.0103803 0.0518593 125
continued -0.0478321 0.2221621 -0.0173738 -0.0483888 285

Grouped by goal type * final status: with further grouping the relationship with clarity among completed goals seems mainly driven by a small sample of recurrence cases

factorScore_4f_post_noLong %>%
  drop_na(status_final) %>%
  group_by(status_final, goalType) %>%
  summarise(across(c(Value:Consensus), ~cor(.x, progress_diff, use = "pairwise.complete.obs")),
            total_goal = n()) %>%
  kable(format = "html", escape = F) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
status_final goalType Value Clarity External Consensus total_goal
abandoned recurrance -0.2104854 0.0729156 -0.0402688 -0.0515341 34
abandoned short-term 0.3956710 0.0499133 0.2441539 0.3570029 23
completed recurrance 0.1207747 0.5131191 -0.0166207 0.2180272 33
completed short-term -0.0582945 0.0060486 -0.0594733 0.0196897 92
continued recurrance -0.0922890 0.2335215 0.0076824 -0.0227869 202
continued short-term 0.0555076 0.1977922 -0.0684629 -0.1025639 83

Correlations with differences satisfaction

Grouped by goal type: Other than the relationship with clarity, differences in satisfaction may have a very weak relationship with external

factorScore_4f_post %>%
  group_by(goalType) %>%   
  summarise(across(c(Value:Consensus), ~cor(.x, satisfaction_diff, use = "pairwise.complete.obs")),
            total_goal = n()) %>%
  kable(format = "html", escape = F, ) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
goalType Value Clarity External Consensus total_goal
long-term -0.0391397 0.3638657 0.1724398 -0.0035699 191
recurrance 0.0982946 0.4231712 0.0228297 0.0404108 321
short-term 0.0116420 0.4876574 0.0928789 -0.0215742 230

Grouped by final status: The relationship with value and consensus may due to the relationships with the final satisfaction

factorScore_4f_post %>%
  drop_na(status_final) %>%
  group_by(status_final) %>%
  summarise(across(c(Value:Consensus), ~cor(.x, satisfaction_diff, use = "pairwise.complete.obs")),
            total_goal = n()) %>%
  kable(format = "html", escape = F) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
status_final Value Clarity External Consensus total_goal
abandoned -0.1153182 0.0200725 -0.0340933 -0.0104489 72
completed -0.1407685 0.0874260 -0.0187235 0.1848985 149
continued 0.0044654 0.2913642 0.0335775 0.0226658 411

Grouped by goal type * final status: The differences in satisfaction has a very weak relationship with external score among continued long-term goals.

factorScore_4f_post %>%
  drop_na(status_final) %>%
  group_by(status_final, goalType) %>%
  summarise(across(c(Value:Consensus), ~cor(.x, satisfaction_diff, use = "pairwise.complete.obs")),
            total_goal = n()) %>%
  kable(format = "html", escape = F) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
status_final goalType Value Clarity External Consensus total_goal
abandoned long-term -0.1203491 0.2356822 0.3156737 0.4205625 15
abandoned recurrance -0.1118925 -0.0253110 -0.0869056 -0.1072592 34
abandoned short-term -0.2818308 -0.0426005 -0.2932453 -0.1016043 23
completed long-term -0.5065967 -0.3049206 -0.1840140 0.2442437 24
completed recurrance 0.0781313 0.3724274 -0.1996571 0.3062805 33
completed short-term -0.0959512 0.0743283 0.0697093 0.1457361 92
continued long-term -0.0062867 0.2969566 0.1618590 -0.0165443 126
continued recurrance -0.0074746 0.3119453 0.0280021 0.0300899 202
continued short-term 0.0453796 0.2713875 -0.1392284 0.0102702 83

6-factor score:

factorScore_6f_post_noLong <- factorScore_6f_post %>% anti_join(long_termDf, by = c("MTurkCode", "goal"))

Correlations with the differences in progress

Grouped by goal type: similar to the baseline factor scores, the differences in progress only correlate with attainability

factorScore_6f_post_noLong %>%
  group_by(goalType) %>%   
  summarise(across(c(Value:Instrumentality), ~cor(.x, progress_diff, use = "pairwise.complete.obs")),
            total_goal = n()) %>%
  kable(format = "html", escape = F, ) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
goalType Value External Attainability Consensus Measurability Instrumentality total_goal
recurrance 0.1166142 0.0187701 0.5118301 0.0035573 0.0809233 0.1102107 321
short-term 0.1062940 0.0778927 0.5050453 -0.0715905 0.2110852 0.0663166 230

Grouped by final status: the differences in progress only correlate with attainability among completed and continued goals

factorScore_6f_post_noLong %>%
  drop_na(status_final) %>%
  group_by(status_final) %>%
  summarise(across(c(Value:Instrumentality), ~cor(.x, progress_diff, use = "pairwise.complete.obs")),
            total_goal = n()) %>%
  kable(format = "html", escape = F) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
status_final Value External Attainability Consensus Measurability Instrumentality total_goal
abandoned 0.0607533 0.0337290 0.0633714 0.1142524 -0.0429941 -0.1037415 57
completed 0.0217329 -0.0381568 0.2309069 0.0518593 0.1577112 -0.1307848 125
continued -0.0388247 -0.0250999 0.2700332 -0.0483888 0.0214409 0.0543197 285

Grouped by goal type * final status: with further grouping the relationship with attainability among completed goals seems mainly driven by a small sample of recurrence cases

factorScore_6f_post_noLong %>%
  drop_na(status_final) %>%
  group_by(status_final, goalType) %>%
  summarise(across(c(Value:Instrumentality), ~cor(.x, progress_diff, use = "pairwise.complete.obs")),
            total_goal = n()) %>%
  kable(format = "html", escape = F) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
status_final goalType Value External Attainability Consensus Measurability Instrumentality total_goal
abandoned recurrance -0.1044443 -0.1393229 0.1813827 -0.0515341 -0.1962166 -0.2161656 34
abandoned short-term 0.2979082 0.2470109 -0.0612128 0.3570029 0.1656205 0.1787512 23
completed recurrance 0.2274237 -0.0770516 0.4479868 0.2180272 0.4507017 -0.0006003 33
completed short-term -0.0065042 -0.0636623 0.0837962 0.0196897 0.0227822 -0.1229524 92
continued recurrance -0.0634470 -0.0010059 0.3336722 -0.0227869 -0.0005240 0.0297420 202
continued short-term 0.0253482 -0.0768080 0.1427683 -0.1025639 0.1216810 0.0938383 83

Correlations with differences satisfaction

Grouped by goal type: Other than the relationship with clarity, differences in satisfaction may have a very weak relationship with external among long-term goals

factorScore_6f_post %>%
  group_by(goalType) %>%   
  summarise(across(c(Value:Instrumentality), ~cor(.x, satisfaction_diff, use = "pairwise.complete.obs")),
            total_goal = n()) %>%
  kable(format = "html", escape = F, ) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
goalType Value External Attainability Consensus Measurability Instrumentality total_goal
long-term -0.0128025 0.1636347 0.4355464 -0.0035699 0.2286296 -0.0243176 191
recurrance 0.1472432 -0.0091583 0.5184258 0.0404108 0.0716262 0.1022322 321
short-term 0.0368098 0.0586716 0.5575644 -0.0215742 0.0946018 0.1276999 230

Grouped by final status: The relationship with value and consensus may due to the relationships with the final satisfaction

factorScore_6f_post %>%
  drop_na(status_final) %>%
  group_by(status_final) %>%
  summarise(across(c(Value:Instrumentality), ~cor(.x, satisfaction_diff, use = "pairwise.complete.obs")),
            total_goal = n()) %>%
  kable(format = "html", escape = F) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
status_final Value External Attainability Consensus Measurability Instrumentality total_goal
abandoned -0.1429020 -0.0728598 -0.0405833 -0.0104489 -0.0140810 0.0012702 72
completed -0.1247682 -0.0252049 0.2560073 0.1848985 0.0571889 -0.0025545 149
continued 0.0276216 0.0174931 0.3880725 0.0226658 0.0194598 0.0464288 411

Grouped by goal type * final status: The relations with measurability are differences across goal types among the continued goals.

factorScore_6f_post %>%
  drop_na(status_final) %>%
  group_by(status_final, goalType) %>%
  summarise(across(c(Value:Instrumentality), ~cor(.x, satisfaction_diff, use = "pairwise.complete.obs")),
            total_goal = n()) %>%
  kable(format = "html", escape = F) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"), full_width = F,position = "center")
status_final goalType Value External Attainability Consensus Measurability Instrumentality total_goal
abandoned long-term -0.2069922 0.3424342 0.0031905 0.4205625 0.5743929 0.0045449 15
abandoned recurrance -0.0296642 -0.1676448 0.0148916 -0.1072592 -0.0839171 -0.1730602 34
abandoned short-term -0.4355016 -0.3282446 -0.1637444 -0.1016043 -0.1862117 0.1447675 23
completed long-term -0.5723955 -0.0693667 0.2881246 0.2442437 -0.0069642 -0.1226004 24
completed recurrance 0.1772714 -0.2335008 0.5334794 0.3062805 0.2466269 0.1005712 33
completed short-term -0.0931373 0.0437641 0.1283367 0.1457361 0.0085863 0.0327982 92
continued long-term 0.0280559 0.1453211 0.3379812 -0.0165443 0.2019691 -0.0439643 126
continued recurrance 0.0209525 0.0060122 0.4183387 0.0300899 0.0193632 0.0282896 202
continued short-term 0.0575760 -0.1581417 0.3577643 0.0102702 -0.1382016 0.1361075 83

MLM

# predict final progress
# m1 <- lmer(progress_final ~ External + Value + Attainability + Consensus + Measurability +Instrumentality+ (External +Value + Attainability +Consensus +  Measurability + Instrumentality| MTurkCode) + progress_base, REML = FALSE, data = factorScore_6f_post)
# 
# summary(m1)
# predict final progress
m1 <- lmer(progress_final ~ External + Value + Attainability + Consensus + Measurability +Instrumentality+ (1| MTurkCode) + progress_base, REML = FALSE, data = factorScore_6f_post)

summary(m1)
## Linear mixed model fit by maximum likelihood . t-tests use Satterthwaite's
##   method [lmerModLmerTest]
## Formula: progress_final ~ External + Value + Attainability + Consensus +  
##     Measurability + Instrumentality + (1 | MTurkCode) + progress_base
##    Data: factorScore_6f_post
## 
##      AIC      BIC   logLik deviance df.resid 
##   2650.6   2694.7  -1315.3   2630.6      597 
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -4.2963 -0.5122  0.0807  0.5571  3.2937 
## 
## Random effects:
##  Groups    Name        Variance Std.Dev.
##  MTurkCode (Intercept) 1.522    1.234   
##  Residual              3.372    1.836   
## Number of obs: 607, groups:  MTurkCode, 213
## 
## Fixed effects:
##                  Estimate Std. Error        df t value Pr(>|t|)    
## (Intercept)      -1.17111    0.68753 580.33842  -1.703   0.0890 .  
## External          0.22890    0.07965 595.16832   2.874   0.0042 ** 
## Value             0.19427    0.11153 606.50284   1.742   0.0820 .  
## Attainability     1.72998    0.06567 589.08304  26.345  < 2e-16 ***
## Consensus        -0.10128    0.08678 603.39644  -1.167   0.2436    
## Measurability     0.08538    0.08146 599.99316   1.048   0.2950    
## Instrumentality  -0.20569    0.08909 603.70819  -2.309   0.0213 *  
## progress_base     0.13001    0.03192 603.64299   4.074 5.25e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Correlation of Fixed Effects:
##             (Intr) Extrnl Value  Attnbl Cnsnss Msrblt Instrm
## External    -0.023                                          
## Value       -0.430 -0.254                                   
## Attainablty -0.066  0.001 -0.095                            
## Consensus   -0.108 -0.177 -0.144  0.205                     
## Measurablty -0.510 -0.069 -0.106 -0.189 -0.050              
## Instrmntlty -0.211 -0.051 -0.298 -0.167 -0.213  0.002       
## progress_bs -0.034 -0.029 -0.013 -0.211  0.011 -0.010 -0.039
factorScore_6f_post_noMissing <- factorScore_6f_post %>%
  drop_na()
m1 <- lmer(progress_final ~ (1| MTurkCode) + progress_base, REML = FALSE, data = factorScore_6f_post_noMissing)
m2 <- lmer(progress_final ~  Attainability + (1| MTurkCode) + progress_base, REML = FALSE, data = factorScore_6f_post_noMissing)

anova(m1, m2)
## Data: factorScore_6f_post_noMissing
## Models:
## m1: progress_final ~ (1 | MTurkCode) + progress_base
## m2: progress_final ~ Attainability + (1 | MTurkCode) + progress_base
##    npar    AIC    BIC  logLik deviance  Chisq Df Pr(>Chisq)    
## m1    4 3155.5 3173.1 -1573.7   3147.5                         
## m2    5 2659.6 2681.7 -1324.8   2649.6 497.86  1  < 2.2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
m3 <- lmer(scale(progress_final) ~ scale(External) + scale(Attainability) + scale(Instrumentality) + (1| MTurkCode) + scale(progress_base), REML = FALSE, data = factorScore_6f_post_noMissing)

summary(m3)
## Linear mixed model fit by maximum likelihood . t-tests use Satterthwaite's
##   method [lmerModLmerTest]
## Formula: scale(progress_final) ~ scale(External) + scale(Attainability) +  
##     scale(Instrumentality) + (1 | MTurkCode) + scale(progress_base)
##    Data: factorScore_6f_post_noMissing
## 
##      AIC      BIC   logLik deviance df.resid 
##   1137.6   1168.5   -561.8   1123.6      600 
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -4.2602 -0.5056  0.0458  0.5938  3.1958 
## 
## Random effects:
##  Groups    Name        Variance Std.Dev.
##  MTurkCode (Intercept) 0.1294   0.3597  
##  Residual              0.2805   0.5296  
## Number of obs: 607, groups:  MTurkCode, 213
## 
## Fixed effects:
##                          Estimate Std. Error         df t value Pr(>|t|)    
## (Intercept)              0.003386   0.033478 199.121780   0.101 0.919545    
## scale(External)          0.094565   0.027394 603.941249   3.452 0.000595 ***
## scale(Attainability)     0.740384   0.026475 592.160671  27.965  < 2e-16 ***
## scale(Instrumentality)  -0.060749   0.028482 593.631052  -2.133 0.033339 *  
## scale(progress_base)     0.107540   0.026242 603.395386   4.098 4.74e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Correlation of Fixed Effects:
##             (Intr) scl(E) scl(A) scl(I)
## scl(Extrnl)  0.008                     
## scl(Attnbl) -0.004 -0.003              
## scl(Instrm)  0.016 -0.217 -0.174       
## scl(prgrs_)  0.003 -0.033 -0.225 -0.045
m4 <- lmer(progress_final ~ External + Attainability + (External | MTurkCode) + (Attainability | MTurkCode)+ progress_base, REML = FALSE, data = factorScore_6f_post_noMissing)

anova(m3, m4)
## Data: factorScore_6f_post_noMissing
## Models:
## m3: scale(progress_final) ~ scale(External) + scale(Attainability) + 
## m3:     scale(Instrumentality) + (1 | MTurkCode) + scale(progress_base)
## m4: progress_final ~ External + Attainability + (External | MTurkCode) + 
## m4:     (Attainability | MTurkCode) + progress_base
##    npar    AIC    BIC  logLik deviance Chisq Df Pr(>Chisq)
## m3    7 1137.6 1168.5  -561.8   1123.6                    
## m4   11 2661.7 2710.2 -1319.9   2639.7     0  4          1
# predict final progress
m5 <- lmer(satisfaction_final ~ External + Value + Attainability + Consensus + Measurability +Instrumentality+ (1| MTurkCode) + progress_final + satisfaction_base + progress_base, REML = FALSE, data = factorScore_6f_post_noMissing)

summary(m5)
## Linear mixed model fit by maximum likelihood . t-tests use Satterthwaite's
##   method [lmerModLmerTest]
## Formula: satisfaction_final ~ External + Value + Attainability + Consensus +  
##     Measurability + Instrumentality + (1 | MTurkCode) + progress_final +  
##     satisfaction_base + progress_base
##    Data: factorScore_6f_post_noMissing
## 
##      AIC      BIC   logLik deviance df.resid 
##   1646.3   1699.2   -811.1   1622.3      595 
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -3.1887 -0.5018  0.0312  0.5166  3.8946 
## 
## Random effects:
##  Groups    Name        Variance Std.Dev.
##  MTurkCode (Intercept) 0.1196   0.3459  
##  Residual              0.7449   0.8631  
## Number of obs: 607, groups:  MTurkCode, 213
## 
## Fixed effects:
##                    Estimate Std. Error        df t value Pr(>|t|)    
## (Intercept)         0.09195    0.29238 509.27605   0.314   0.7533    
## External            0.08298    0.03409 542.78616   2.434   0.0152 *  
## Value               0.02052    0.04854 588.16772   0.423   0.6726    
## Attainability       0.40248    0.04180 589.50010   9.629  < 2e-16 ***
## Consensus          -0.03770    0.03829 602.59086  -0.984   0.3253    
## Measurability      -0.01066    0.03556 598.05083  -0.300   0.7644    
## Instrumentality    -0.05982    0.03835 564.73703  -1.560   0.1193    
## progress_final      0.43015    0.01754 582.08280  24.525  < 2e-16 ***
## satisfaction_base   0.13758    0.02659 568.02628   5.173  3.2e-07 ***
## progress_base      -0.04324    0.01643 589.37439  -2.632   0.0087 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Correlation of Fixed Effects:
##             (Intr) Extrnl Value  Attnbl Cnsnss Msrblt Instrm prgrss_f stsfc_
## External    -0.027                                                          
## Value       -0.393 -0.240                                                   
## Attainablty -0.072  0.102 -0.014                                            
## Consensus   -0.143 -0.159 -0.168  0.072                                     
## Measurablty -0.513 -0.052 -0.111 -0.095 -0.061                              
## Instrmntlty -0.179 -0.083 -0.336 -0.197 -0.180  0.003                       
## progrss_fnl  0.067 -0.122 -0.053 -0.711  0.058 -0.053  0.097                
## satsfctn_bs -0.118 -0.038 -0.101 -0.086  0.157 -0.038  0.047 -0.072         
## progress_bs  0.003  0.010  0.053  0.026 -0.057  0.027 -0.068 -0.104   -0.516